在新服务器上重新安装Rails应用程序.应用程序的一部分可以根据用户选择的按钮分叉两个方向之一.这部分不起作用,当我查看日志时,我看到了我给表单的值,除了commit
params散列的部分.这似乎是应用程序没有按预期工作的原因(因为没有任何内容params[:commit]
,但我不知道为什么不会传入提交;请求肯定是一个POST请求,所有其他参数都在那里.
有一个禁用按钮提交功能的类似问题.我们通过在提交表单之前添加具有相同名称和值的隐藏输入字段来解决它.
function disableButtonAndSubmit()
{
var input = $("<input type='hidden' />").attr("name", $(this)[0].name).attr("value", $(this)[0].value);
$(this).closest('form').append(input);
$(this).attr('disabled', 'disabled').html('Loading…');
$(this).closest('form').submit();
}
$('#somewhere button').click(disableButtonAndSubmit);
Run Code Online (Sandbox Code Playgroud)
只需添加name: "commit", value: "Save"
到表单提交按钮:
form_for @object do |f|
...
f.button :submit, "Save", name: "commit", value:"Save"
end
Run Code Online (Sandbox Code Playgroud)
然后你将在控制器中params[:commit]
等于"Save"
.