2011-09-29 7 views
25

Sto utilizzando Simple Form nella mia app e vorrei rimuovere lo * per indicare che è richiesto un attributo su tutti i miei moduli (esistenti e quelli ancora da creare).Rails simple_form attribute required mark (*)

ho cercato di mettere in simple_form.rb:

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

e ho cercato di modificare simple_form.en.yml:

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

so di poter impostare :required => false su ogni campo, ma voglio pulire le viste & impostarlo una volta.

+2

Il server è stato riavviato dopo aver modificato il valore? – Dogbert

risposta

43

L'impostazione di simple_form.required.mask a '' dovrebbe funzionare se è stato riavviato il server.

Ma è possibile rimuoverlo modifica della configurazione:

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

a

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

grazie - il riavvio del server ha fatto il trucco ... – Chip

+0

Ha funzionato come un campione. Grazie – cbmeeks

+2

Ho cambiato il mio in: config.label_text = lambda {| label, richiesto | required.present? ? "# {label}": "# {label}"} – cbmeeks

19

È anche possibile fare

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

solo

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

e riavviare il server di rotaie. Quindi funziona.

+1

Avere un validatore su un attributo [sostituzioni] (https://github.com/plataformatec/simple_form/ blob/v3.1.0/lib/simple_form/helpers/required.rb # L10-18) questa impostazione. –

6

on Rails 4 è sufficiente rimuovere la parola "necessaria"

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

quindi dovrebbe essere

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

convalida funziona ancora!