使用rails创建关联模型

时间:2016-06-20 11:20:47

标签: ruby-on-rails model model-associations

我正在尝试使用Rails创建关联模型。我的模型是Financial,它有许多文档和Document属于Financial。创建关联模型时的工作代码可以是

def create
  @financial = Financial.find(2)
  @document = @financial.documents.create(document_params)
  ...
end

在我看来,我有一个看起来像这样的表格来选择合适的财务

<%= form_for Document.new do |f| %>
<%= f.collection_select :financial_id, Financial.all, :id, :description %>
<%= f.submit %>

我确实在提交表单

时会在日志中看到正确的参数
"financial_id"=>"3"

所以我想我只需要将初始代码更改为:

def create
  @financial = Financial.find(params[:financial_id])
  @document = @financial.documents.create(document_params)
  ...
end

但是我得到了一个&#34;无法找到财务状况&#39; =&#34; =&#34;。我尝试过其他的事情,包括:

  @financial = Financial.find_by(id: params[:financial_id])

没有太大的成功。有人能给我合适的语法吗?感谢。

1 个答案:

答案 0 :(得分:1)

  

找不到带有&#39; id&#39; =

的财务状况

因为,提交的params实际上是document哈希内部。所以params[:financial_id]无法工作。相反,您需要使用params[:document][:financial_id]

def create
  @financial = Financial.find(params[:dcument][:financial_id])
  @document = @financial.documents.create(document_params)
  ...
end