[英]How to get validations working with simple_form on an ActiveRecord Store column
在我的模型中,我有以下設置。 它可以正確驗證這些屬性,但是使用simple_form時不會顯示驗證。
class Node < ActiveRecord::Base
store :system_settings, accessors: [:attr_1, :attr_2, :attr_3], coder: HashWithIndifferentAccess
validates :attr_1, presence: true
validates :attr_2, presence: true
validates :attr_3, presence: true
end
我的表格是這樣設置的
= simple_form_for @node, html: {class: 'form-horizontal system-settings-form', multipart: true}, remote: true do |f|
= f.error_notification
= f.simple_fields_for :system_settings do |s|
= s.input :attr_1, input_html: {value: f.object.system_settings[:attr_1]}
= s.input :attr_2, input_html: {value: f.object.system_settings[:attr_2]}
= s.input :attr_3, input_html: {value: f.object.system_settings[:attr_3]}
我可能沒有正確使用表單,因為我不得不強制使用值而不是用simple_form進行魔術處理(我不會介意這樣做的更好方法)。 有人可以幫我設置此表格,以接收這些字段的驗證錯誤嗎?
您可以在表單的頂部添加一行來發布它們:
<% if @node.errors.any? %>
<ul>
<%= s.errors.full_messages.each do |msg| %>
<li> <%= msg %></li>
<% end %>
</ul>
<% end %>
您可以列出所有錯誤,也可以僅列出第一個錯誤。這些錯誤是一個數組,因此您可以根據需要進行遍歷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.