强参数 params.require 和 link_to

Strong parameter params.require with link_to

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

演出。html.erb:

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

在 bids_controller.rb 这行代码不起作用:

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

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

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

我不太明白这个问题,但我认为如果我不包含 params.require 部分,我的代码将不会像将来那样受到攻击或出现问题。

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

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 %>