2011-09-29 9 views
25

Estoy usando Simple Form en mi aplicación y me gustaría eliminar el * para indicar que se requiere un atributo en todos mis formularios (existentes y aquellos que aún no se han creado).Rails simple_form atributo required mark (*)

me han tratado de poner en simple_form.rb:

# Whether attributes are required by default (or not). Default is true. 
    config.required_by_default = false 

y he tratado de modificar simple_form.en.yml:

required: 
     text: 'required' 
     mark: '' # <------ tried setting this to blank. 

Sé que puedo establecer :required => false en cada campo, pero quiero limpiar hasta las vistas & configúrelo una vez.

+2

¿Reinició el servidor después de cambiar el valor? – Dogbert

Respuesta

43

Establecer el simple_form.required.mask en '' debería funcionar si reinició el servidor.

Pero se puede quitar el cambio de la configuración:

# config.label_text = proc { |label, required| "#{required} #{label}" } 

a

config.label_text = proc { |label, required| "#{label}" } 
+1

gracias - reiniciar el servidor hizo el truco ... – Chip

+0

Trabajó como un campeón. Gracias – cbmeeks

+2

Cambié el mío a: config.label_text = lambda {| label, required | requerido.presente? ? "# {label}": "# {label}"} – cbmeeks

19

También se puede hacer

simple_form_for @model, :defaults => {:required => false} 
0

simplemente

# Whether attributes are required by default (or not). Default is true. config.required_by_default = false

y reinicie su servidor de rieles. Entonces funciona

+1

Tener un validador en un atributo [sobrescribe] (https://github.com/plataformatec/simple_form/ blob/v3.1.0/lib/simple_form/helpers/required.rb # L10-18) esta configuración. –

6

en los carriles 4 acaba de quitar la palabra "necesaria"

config.label_text = lambda { |label, required, explicit_label| "#{required} #{label}" } 

lo que debe ser

config.label_text = lambda { |label, required, explicit_label| "#{} #{label}" } 

Validación todavía funciona!

Cuestiones relacionadas