我尝试在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部分代码,我希望有人能够指导我如何做到这一点。谢谢!
答案 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 %>