以这种方式发送参数以在控制器中创建动作是否安全/可接受?有没有潜在的问题?
<%= link_to "Acceptance", acceptances_path(acceptance: {favor_id: @favor.id, user_id: current_user.id}), method: :post %>
然后在控制器中
class AcceptancesController < ApplicationController
def create
@acceptance = Acceptance.new(acceptance_params)
if @acceptance.save
redirect_to favors_path
else
render :template => 'favors/index'
end
end
private
def acceptance_params
params.require(:acceptance).permit(:favor_id, :user_id)
end
end
谢谢您的宝贵时间!
最佳答案
您能做的最好的(也是最安全的)是在控制器中分配这些ID。
由于您可以访问@favor
和current_user
对象,因此最好这样做:
def create
@acceptance = Acceptance.new(acceptance_params)
@acceptance.favor_id = @favor.id
@acceptance.user_id = current_user.id
# code omitted
end