Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用链接通过ajax将数据传递到rails控制器?_Jquery_Ruby On Rails_Ruby_Ajax_Ruby On Rails 3 - Fatal编程技术网

Jquery 使用链接通过ajax将数据传递到rails控制器?

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

我想在rails项目中通过link_to使用ajax将一个携带数据的对象实例传递给控制器。但我的数据似乎没有被传送到控制器,我做错了什么我的代码示例如下:

<%= 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在链接上传递参数