我想传递不带必需参数的参数,如下所示。
def str_params
params.require(:user).permit(:id, :name)
end
并在没有用户键的情况下传递参数
有什么办法吗?
答案 0 :(得分:1)
如果您不想传递密钥,可以直接删除require,如下所示
params.permit(:id, :name)
答案 1 :(得分:0)
是的,您可以在控制器中获得params[:id]
或params[:name]
之类的参数。
它将绕过强大的参数。但是始终建议使用强参数。
所以最好是放params.permit(:id, :name)
而不是params.require(:user).permit(:id, :name)
答案 2 :(得分:0)
情况1:当您的请求包含根密钥:user
时,请像这样使用它:
PERMITTED_PARAMS = %i[id name].freeze
def action_name
puts str_params
end
def str_params
params.require(:user).permit(*PERMITTED_PARAMS)
end
情况2:当请求包含顶级用户属性时,在:user
键下没有任何嵌套:
def action_name
# puts params.permit(*PERMITTED_PARAMS)
end