has_many :through 関係を持つ 2 つのモデルがあります。しばらくの間、フォームは問題なく機能しています。私は、クライアント側の検証に取り組むことにしました。その時点で、属性アクセス許可が現れ始めました。
モデルは次のとおりです。
class User < ActiveRecord::Base
has_many :missions, :through => :participations
has_many :participations
accepts_nested_attributes_for :participations
end
class Mission < ActiveRecord::Base
has_many :users, :through => :participations
has_many :participations
end
class Participation < ActiveRecord::Base
belongs_to :mission
belongs_to :user
end
`
フォームは次のとおりです (ここで、リソースはユーザーです)。
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true) do |f| %>
<%= f.fields_for :missions do |ff| %>
....
<% end %>
<% end %>
client_side_validation_hash' for nil:NilClass)
:validate => true を削除すると、フォームは正常に表示されます。
これにより、ミッション属性を表示するリソースに問題があると思われます。モデルに変更を加えると、ミッション フィールドがフォームに表示されなくなります。
ここでいくつかの同様の質問を回答とともに見ましたが(ここからいくつかのアイデアが出てきます)、どれもうまくいきません。私は何を間違っていますか?