第 3 レベルの複数レベルのネストされたフォームに問題があります。私のフォームに関係する 3 つのモデルがあります。
class School < ActiveRecord::Base
has_many :years
validates_presence_of :name
accepts_nested_attributes_for :years
end
class Year < ActiveRecord::Base
belongs_to :school
has_many :year_contacts
validates_presence_of :year_name
accepts_nested_attributes_for :year_contacts
end
class YearContact < ActiveRecord::Base
belongs_to :year
validates_presence_of :contact_name
end
これは私のフォームです:
<%= form_for @school, :validate => true do |f| %>
<h4>School</h4>
<%= f.label 'Name', :class => 'control-label' %>
<%= f.text_field :name, :class => 'span12', :placeholder => "School name" %>
<h4>Year of Graduating</h4>
<%= f.fields_for :years do |fo| %>
<%= fo.label 'Year' %>
<%= fo.text_field :year_name %>
<h4>Contact</h4>
<%= fo.fields_for :year_contacts do |foo| %>
<%= foo.label %>
<%= foo.text_field :contact_name %>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
クライアント側の検証は、学校属性とネストされた年属性に対して魅力的に機能します。しかし、3 番目のレベルのネスティングに関しては、うまくいきませんでした。year_contacts 属性に対するクライアント側の検証はありません。
それがバグなのか、client_side_validations の既知の制限なのか、それとも私の側のエラーなのかはわかりません。私が見つけたすべての既知の問題は、別のモデルの下にネストされた 2 つのモデルのみであり、私のような真のマルチレベル構造はありませんでした。
github でチケットを開きました: https://github.com/bcardarella/client_side_validations/issues/568
Rails 3.2.1 と client_side_validations 3.2.5 を使用しています
フォームはうまく機能します。すべてのデータは期待どおりに保存されます。