2011-09-29 7 views
25

Używam Simple Form w mojej aplikacji i chciałbym usunąć *, aby wskazać, że atrybut jest wymagany we wszystkich moich formularzach (istniejących i jeszcze nie utworzonych).Szyny atrybut simple_form required mark (*)

Próbowałem ustawić w simple_form.rb:

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

I starałem się modyfikować simple_form.en.yml:

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

wiem, że mogę ustawić :required => false na każdym polu, ale chcę, aby oczyścić w górę widoki & ustaw go raz.

+2

Czy zrestartowałeś serwer po zmianie wartości? – Dogbert

Odpowiedz

43

Ustawienie simple_form.required.mask na '' powinno działać, jeśli zrestartujesz serwer.

Ale można usunąć to zmieniając konfigurację:

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

do

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

dziękuję - ponowne uruchomienie serwera załatwiło sprawę ... – Chip

+0

Pracował jak mistrz. Dzięki – cbmeeks

+2

zmieniłem kopalnię na: config.label_text = lambda {| label, required | required.present? ? "# {label}": "# {label}"} – cbmeeks

19

Można również zrobić

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

tylko

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

i zrestartuj serwer szyn. Wtedy to działa.

+1

Posiadając walidator na atrybucie [przesłanianie] (https://github.com/plataformatec/simple_form/ blob/v3.1.0/lib/simple_form/helpers/required.rb # L10-18) to ustawienie. –

6

on Rails 4 prostu usunąć słowo "niezbędne"

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

tak powinno być

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

Validation nadal działa!

Powiązane problemy