提交rails 4表单时出现以下错误:
ActionController::ParameterMissing - param is missing or the value is empty: player:
表格是正确的。问题是它是一个字段形式,我希望该字段是可选的,因此如果用户没有输入该字段的信息,则单击“提交”将转到该站点的下一部分。问题是我需要使用强参数来消毒params。以下是我到目前为止的情况:
def presentation_params
params.require(:player).permit(:name)
end
问题在于它需要播放器,并且只有在表单字段不为空时才会提交播放器数据。
我也试过更换“#34;要求"用" fetch"但它返回相同的错误。
如何让用户按下提交,继续前进,但不会通过摆脱强大的参数来引入安全问题?
答案 0 :(得分:0)
您可以在使用player
之前检查请求中是否有presentation_params
个参数。我假设你正在做这样的事情:
@player.attributes = presentation_params
在这种情况下你可以这样做:
@player.attributes = presentation_params if params.has_key?(:player)
如果请求中没有播放器参数,您可以跳过更多代码。
答案 1 :(得分:0)
您可以尝试不在强参数中包含名称,并创建这样的播放器:
Player.create(optional_strong_parameters) do |p|
p.name = params[:name]||'Default'
end