簡體   English   中英

如何在ActiveRecord商店列上使用simple_form獲得驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM