当validate =>时,嵌套表单字段消失真正

时间:2012-08-12 21:36:29

标签: ruby-on-rails has-many client-side-validation

我有两个带有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;是的,表格显示正常。这让我相信资源看到任务属性存在问题。我对模型所做的任何修改都会导致任务字段不在表单中显示。

我在这里看了几个类似的问题和答案(这是我的一些想法),但没有一个适合我。我做错了什么?

1 个答案:

答案 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| %>
相关问题