未定义的方法构建,构建 has_many association in rails 3.2

Undefined method build, build has_many association in rails 3.2

我有以下问题: 我必须在我的数据库中创建一个新的关联行。 我有:

companies table

references table

公司has_many 参考资料。

参考资料belongs_to 公司。

在我的公司table我有以下属性:

id | city | email | ...|

在我的参考 table 中,我有以下属性:

id | name | surname | company_id | ...|

Company.rb 型号:

belongs_to :references

Reference.rb 型号:

has_many :companies

在公司控制人中:

  def create

    @company = Company.new(company_params)
    @company.references.build(params[:company][:email_r])   
        respond_to do |format|  
      if @company.save
        format.html { redirect_to companies_index_path, :notice => 'created'}
        format.json { render :json => companies_index_path, :status => :created, :location => @company }
      else
        format.html { render :action => "new" }
        format.json { render :json => @company.errors, :status => :unprocessable_entity }
      end
    end
  end

我的错误是:

undefined method `build' for nil:NilClass

根据您的 table 架构,关联应该是 - company has many referencesreference belong to a company。在 Company.rb 中应该如下所示 -

class Company
  has_many :references
end 

而在 Reference.rb 中应该是

class Reference 
   belongs_to :company
end