我有两个带有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 =&gt;是的,表格显示正常。这让我相信资源看到任务属性存在问题。我对模型所做的任何修改都会导致任务字段不在表单中显示。
我在这里看了几个类似的问题和答案(这是我的一些想法),但没有一个适合我。我做错了什么?
答案 0 :(得分:1)
更改行
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :validate => true) do |f| %>
到
<%= form_for(@user, :url => registration_path(resource_name), :validate => true) do |f| %>