1

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

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

4

1 回答 1

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| %>
于 2012-11-11T06:20:10.360 回答