以这种方式发送params以在控制器中创建动作是安全/可接受的吗?有没有潜在的问题?
<%= 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
感谢您提前的时间!
答案 0 :(得分:2)
您可以做的最好(也是最安全的)是在控制器中分配这些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