2014-04-15 58 views
1

我有形式,看起來像這樣Rails的simple_form錯誤:在我的應用程序錯誤

= simple_form_for @user do |f| 
    = f.input :name, error: false 
    = f.input :surname, error: false 

有什麼辦法避免這種重複(錯誤:錯誤的)?

+0

什麼是'error'在你的代碼? – Pavan

+1

錯誤是一個simple_form方法,當您將其更改爲true時,它不顯示字段錯誤。例如,當您將名稱留空並單擊提交時,字段將顯示爲紅色,但沒有任何消息。 –

回答

3

如果他們都是同一類型的,這樣的事情應該工作:

= simple_form_for @user do |f| 
    - [ :name , :surname ].each do |field| 
    = f.input field, error: false 

如果沒有,你可以使用哈希或者什麼的,而不是一個數組,並指定類型。

看來,簡單的形式有以下幾個選項:

If you want to pass the same options to all inputs in the form (for example, a default class), you can use the :defaults option in simple_form_for. Specific options in input call will overwrite the defaults:

<%= simple_form_for @user, defaults: { input_html: { class: 'default_class' } } do |f| %> 
    <%= f.input :username, input_html: { class: 'special' } %> 
    <%= f.input :password, input_html: { maxlength: 20 } %> 
    <%= f.input :remember_me, input_html: { value: '1' } %> 
    <%= f.button :submit %> 
<% end %> 

https://github.com/plataformatec/simple_form

所以,你的情況:

= simple_form_for @user , defaults: { error: false } do |f| 
    = f.input :name 
    = f.input :surname 
1

你可以通過循環符號數組

simple_form_for @user do |f| 
    [:name, :surname].each do |element| 
    f.input element, error: false 
    end 
end 
+0

這是個好主意,但我的真實形式非常複雜,許多領域有不同的選擇,這是循環做不出來的。 –