我想在rails项目中使用ajax通过link_to将一个携带数据的对象实例传递给控制器。但我的数据似乎没有被带到控制器,我做错了什么? 我的代码示例如下:
<%= link_to '', my_path_controller_path(my_object: @object),
remote: true, method: :post, class: "my-class" %>
在控制器中我有以下内容:
def my_path
@my_object = MyObject.new(params[:my_object])
if @my_object.valid?
@my_object.doSomething()
render json: {
success: true
}
else
render json: {
success: false,
message: @my_object.errors.full_messages.to_sentence
}
end
end
@object是一个在传递给视图之前初始化的实例变量。
答案 0 :(得分:1)
尝试这样的事情:
<%= link_to 'My Link', javascript::void(0), :class => "my-class" %>
放一些脚本:
<script>
$(".my-class").click(function() {
$.ajax({
type: "post",
url: "<%= my_path_controller_path %>",
data: {my_object: <%= @object %>},
dataType:'script',
beforeSend: function(){
// do whatever you want
},
success: function(response){
// do whatever you want
}
});
});
</script>