未定义的方法构建,构建 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 references
和 reference belong to a company
。在 Company.rb
中应该如下所示 -
class Company
has_many :references
end
而在 Reference.rb
中应该是
class Reference
belongs_to :company
end
我有以下问题: 我必须在我的数据库中创建一个新的关联行。 我有:
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 references
和 reference belong to a company
。在 Company.rb
中应该如下所示 -
class Company
has_many :references
end
而在 Reference.rb
中应该是
class Reference
belongs_to :company
end