2017-05-16 80 views
0

完整郵件我有這種形式顯示上simple_form

<%= simple_form_for :post do |f| %> 
    <%= f.error_notification %> 
    <%= f.input :title %> 
    <%= f.input :body %> 
    <%= f.button :submit %> 
<% end %> 

在我的例子標題字段是必需的。因此,如果我嘗試在:title中提交沒有任何價值的表單,則驗證將失敗,並返回錯誤消息,如預期的那樣。但是我得到默認的錯誤就是這個can't be blank,所以我在想,如果有顯示驗證錯誤的完整信息(在不使用simple_form寶石等)的方式,像The title field can't be blank

有沒有辦法時間顯示完整的信息?

+0

頂部或內聯錯誤? –

+0

@Sajan我相信這不是問題 –

回答

0

經檢查,我發現,你可以在全球配置此:

配置/初始化/ simple_form.rb

SimpleForm.setup do |config| 
    config.wrappers :default, class: :input, 
    hint_class: :field_with_hint, error_class: :field_with_errors do |b| 
    # ... 
    # ... 
    # COMMENT THIS LINE JUST LIKE THIS: 
    # b.use :error, wrap_with: { tag: :span, class: :error } 

    # THEN UNCOMMENT THIS LINE JUST LIKE THIS: 
    b.use :full_error, wrap_with: { tag: :span, class: :error } 
    end 
end 

經測試工作。

+0

按照此主題https://stackoverflow.com/questions/24358068/show-full-error-messages- with-simple-form,我不得不編輯'initializers/simple_form_bootstrap.rb',因爲我使用的是Bootstrap。我會接受你的答案,正如它在simple_form上的工作一樣,因爲它幫助我找出解決方案。謝謝! :-) – Lykos

1

不是很乾淨,但它的工作原理:)

<%= simple_form_for :post do |f| %> 
    <%= f.error_notification %> 
    <%= f.input :title, error: f.object.errors.full_messages_for(:title).to_sentence %> 
    <%= f.input :body, error: f.object.errors.full_messages_for(:body).to_sentence %> 
    <%= f.button :submit %> 
<% end %> 
+0

這兩個解決方案都可以正常工作,但是,是否有「全局」配置設置,因爲現在我必須在每個表單上執行此操作 – Lykos

+0

@Lykos我剛添加了一個新答案:) –

1

嘗試使用full_error方法,像這樣:

<%= f.input :title, error: f.full_error(:title) %> 
+0

This工作正常,但是,是否有「全局」配置設置,因爲現在我必須在每個表單上執行 – Lykos

相關問題