2

我正在使用一个表单将一些数据从控制器的一个部分传输到另一个部分(新创建),但我遇到了一些麻烦。当我在提交表单后尝试获取数据时,它只是给了我一个 nil 值。

这是表单代码:

<%= f.hidden_field :owner_id, :value => @tool.user_id %>
<%= f.hidden_field :tool_id, :value => @tool.id %>
<%= f.hidden_field :borrower_id, :value => current_user.id %>

这是控制器中的创建操作:

  def create
    render text: params[:rental_agreement].inspect
    @rental_agreement = RentalAgreement.create
    @rental_agreement.owner_id = params[:owner_id]
    # render text: @rental_agreement.inspect
  end

当我点击表单上的“提交”按钮时,我看到:

{"owner_id"=>"3", "tool_id"=>"1", "borrower_id"=>"4"}

这很好,但是当我更改哪个检查呈现(注释掉顶行,取消注释底部)时,它显示的只是:

#

如果我在 Rails 控制台中查看这个对象,其中的所有字段都是 nil(除了 id 和 created_at 字段)。

我只是想弄清楚如何将表单中的变量(owner_id、tool_id 和borrower_id)分配给rental_agreement 变量。任何帮助深表感谢!

4

1 回答 1

2

您的 create 方法似乎错误。试试这个。

def create
  @rental_agreement = RentalAgreement.new(params[:rental_agreement])
  @rental_agreement.save
end
于 2012-12-19T22:38:10.143 回答