我有一个Ruby on Rails 4.0应用程序,我想知道是否可以将带有JS的隐藏参数传递给Rails中的表单提交表单?
答案 0 :(得分:0)
我这样做的方法是将它实际应用于控制器(而不是JS):
#app/controllers/your_controller.rb
def create
@model = Model.new(controller_params)
@model.save
end
private
def controller_params
params.require(:controller).permit(:params).merge(param: "value")
end
<强>更新强>
根据您的评论,您可以像这样在JS中使用.on("submit")
函数:
#app/assets/javascripts/application.js
$(document).on("submit", "#form", function(){
// append your params in here
});
至于添加参数,你可以从中受益: Adding POST parameters before submit
$('#commentForm').submit(function(){ //listen for submit event
$.each(params, function(i,param){
$('<input />').attr('type', 'hidden')
.attr('name', param.name)
.attr('value', param.value)
.appendTo('#commentForm');
});
return true;
});
答案 1 :(得分:0)
为什么不在表单中添加具有默认值的隐藏字段?使用simple_form和haml,它将如下所示:
= f.input :field, as: :hidden, default: :value