0

我的 rails3.2 应用程序中有一个用于投诉的表单,该表单还同时建立了一个新公司和分支机构。一切正常,但我想将公司的 id 作为外键 company_id 存储在 Branch 表中。

这是我的投诉控制器:

def new
    @complaint = Complaint.new
    @complaint.build_company
    @complaint.build_branch(:company_id => '#Trying to set the company ID here')

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @complaint }
    end
  end

我可以在:company_id =>分配上面创建的对象的 id 之后放置什么?

4

3 回答 3

0

解决方案是将以下代码添加到创建操作

def create
...
@complaint.branch.company = @complaint.company
@complaint.save
...
end
于 2013-03-21T08:46:14.703 回答
0

不就是这样吗?

@complaint.build_branch(:company_id => @complaint.company_id)
于 2013-03-20T03:13:18.810 回答
0

问题似乎是由于未保存的公司对象和投诉对象。你没有概述模型的细节,但我猜,

@complaint = Compplaint.create(#Whatever parameters are required)
company = @complaint.companies.create()  #Assuming has_many relationship
@complaint.branches.create(:comapny_id => company.id)

create 保存记录并生成 id,而 build 和 new 不会。

您还应该在模型中探索 has_many :through 。

于 2013-03-21T03:30:33.660 回答