我有两个具有 has_many :through 关系的模型。一段时间以来,表单一直运行良好。我决定进行客户端验证,此时属性访问权限开始出现。
以下是模型:
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,则表单显示正常。这让我相信资源查看任务属性存在问题。我对模型所做的任何修改都会导致表单中不显示任务字段。
我在这里查看了几个类似的问题和答案(这是我的一些想法),但没有一个对我有用。我究竟做错了什么?