强参数params.require with link_to

时间:2016-07-14 02:08:03

标签: ruby-on-rails strong-parameters

我尝试在Assignment / show.html.erb上使用link_to来创建出价。

show.html.erb:

<%= link_to "Create Bid", bids_path(:status => "Pending", :assignment_id => @assignment.id, :user_id => current_user.id), :method => :post %>

在bid_controller.rb中,这行代码不起作用:

params.require(:bid).permit(:status, :assignment_id, :user_id)

我必须将其更改为以下内容才能使其正常工作:

params.permit(:status, :assignment_id, :user_id)

我真的不明白这个问题,但我认为如果我不包括params.require部分,我的代码将来不会受到攻击或问题的保护。

无论如何,我想要包含params.require部分代码,我希望有人能够指导我如何做到这一点。谢谢!

1 个答案:

答案 0 :(得分:2)

params.require(:bid).permit(:status,:assignment_id,:user_id)表示传入的参数具有以下结构

bid: {
  status: '',
  assignment_id: 1,
  user_id: 1
}

因此,要构建一个符合您在强参数中所期望的结构的link_to标记,您可以尝试以下示例

<%= link_to "Create Bid", bids_path(bid: {status: "Pending", assignment_id: @assignment.id, user_id:current_user.id}), :method => :post %>