我有一個很多字段的大表單,我們在rails中找回錯誤的方式是它們駐留在模型對象中。我想要一個乾淨的方式來顯示除了每個字段之外的錯誤,而不是單獨顯示。有沒有可以做到這一點的寶石,如果現在可以做到這一點,最好的辦法是什麼。Rails form inline erorrs
我想每個錯誤顯示除了字段錯誤。
感謝
我有一個很多字段的大表單,我們在rails中找回錯誤的方式是它們駐留在模型對象中。我想要一個乾淨的方式來顯示除了每個字段之外的錯誤,而不是單獨顯示。有沒有可以做到這一點的寶石,如果現在可以做到這一點,最好的辦法是什麼。Rails form inline erorrs
我想每個錯誤顯示除了字段錯誤。
感謝
嘗試simple_form
或formtastic
使它更容易些。有了這些,它會自動做你想要的。
如果你想使你的觀點很長,或者只是不希望使用的寶石,你也可以這樣做:
<span class="help-inline"><%= @object.errors[:field] %></span>
但是,這會得到快速噁心。
它根本沒有問題,但是你應該遍歷它們(或者使用助手),因爲它是一個每個字段的集合。 –
假設您使用的是Rails 3+和Rails Form Helpers,您不需要任何寶石,也不需要遍歷錯誤集合。
那麼,這並不完全正確,但Rails會爲你做。你只需要提供一個proc。
我以下內容添加到... /配置/ application.rb中:
# wrap each form field that has an error with the following.
# note, condition for arrays and singletons.
config.action_view.field_error_proc = Proc.new do |html_tag, instance|
if instance.error_message.kind_of?(Array)
%(<span class="validation-error">#{html_tag}</span>).html_safe
else
%(#{html_tag}<span class="validation-error"> </span>).html_safe
end
end
確保定義的CSS類驗證錯誤。這應該讓它工作,然後你可以調整它以適應你的需求。請注意,您的CSS可以是特定於每種字段類型的,例如input,textarea,select等。
並且當然重新啓動Rails應用程序。
我在SO的另一個線程中實際瞭解了這一點,但現在找不到它,因此無法提供參考。
這正是我正在尋找的東西,但有沒有辦法將它作爲類或其他東西拉出到lib文件夾中。 application.rb中的代碼實際上並不符合維護的最佳利益 – timanema
獲取每個字段('@ object.errors [field_name]')的錯誤並在窗體中迭代它們。我認爲一些形式的寶石可以做到這一點,但我不確定哪一個。 –