1

我有处理 3 个模型的嵌套表单。工作、雇主、用户

工作控制器上的表单需要创建工作、雇主和用户。

Job 和 Employer 表单工作正常,但是当我添加 User 嵌套表单时,我收到错误“NilClass:Class 的未定义方法 `model_name'”

我完全不知道为什么。

这是我的代码:

工作模式

  attr_accessible :category, :employer_id, :employer_attributes, :user_attributes

  belongs_to :employer
  accepts_nested_attributes_for :employer, :user
  has_many :applications
  has_many :users, :through => :applications 

雇主模型

 attr_accessible :companyname, :email, :logo, :password, :url
has_many :jobs
 belongs_to :user

用户模型

attr_accessible :admin, :cv, :name, :password, :website, :password_confirmation

  has_many :applications
  has_many :jobs, :through => :applications
  has_one :employer

_form.html.erb

<%= form_for(@job) do |f| %>
    <%= f.label :title %>
    <%= f.text_field :title %>

<%= f.fields_for :employer do |builder| %>
     <%= builder.label :companyname, "Company Name" %>
      <%= builder.text_field :companyname %>
<% end %>

<%= f.fields_for :user do |builder| %>
    <%= builder.label :email, "Email" %>
     <%= builder.text_field :email %>
 <%= builder.label :password, "Password" %>
        <%= builder.text_field :password %>
<% end %>

<div class="actions">
    <%= f.submit %>
  </div>

<% end %>

作业控制器

def new

  @job = Job.new
  @job.employer = @job.build_employer
  @job.user = @job.build_user
4

1 回答 1

1

To 看起来您的 Job 模型没有用户方法。您可能需要添加

belongs_to :user
于 2013-05-23T17:41:49.067 回答