Jquery 使用链接通过ajax将数据传递到rails控制器?
我想在rails项目中通过link_to使用ajax将一个携带数据的对象实例传递给控制器。但我的数据似乎没有被传送到控制器,我做错了什么我的代码示例如下:Jquery 使用链接通过ajax将数据传递到rails控制器?,jquery,ruby-on-rails,ruby,ajax,ruby-on-rails-3,Jquery,Ruby On Rails,Ruby,Ajax,Ruby On Rails 3,我想在rails项目中通过link_to使用ajax将一个携带数据的对象实例传递给控制器。但我的数据似乎没有被传送到控制器,我做错了什么我的代码示例如下: <%= link_to '', my_path_controller_path(my_object: @object), remote: true, method: :post, class: "my-class" %> def my_path @my_obje
<%= 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
@对象是在传递给视图之前初始化的实例变量。尝试以下操作:
<%= 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>
$(“.my class”)。单击(函数(){
$.ajax({
类型:“post”,
url:“”,
数据:{my_object:},
数据类型:'script',
beforeSend:function(){
//你想干什么就干什么
},
成功:功能(响应){
//你想干什么就干什么
}
});
});
你能发布完整的控制器操作和发送到控制器的参数散列吗?我想如果你在控制器中放置参数,你可以很容易地找到你的参数。问题是我的ajax成功总是错误的,因为我的\u对象上没有设置任何属性,它们都是空的。即使在视图中,它们在对象实例变量上都是有效的?为什么不把完整的代码放进去,以后再修改呢?问题是完全不同的代码。浪费我的时间回答。如果您在发出ajax请求提交表单的页面上使用form_for(如果您是,您应该在问题中发布该代码),那么您希望在调用form_for时使用remote:true。我不确定是否可以通过方法post在链接上传递参数