从Javascript调用Rails操作

时间:2013-04-09 05:42:24

标签: javascript ruby-on-rails ajax

我在我的控制中调用link_to操作中的update

<%= link_to((image_tag("lock_closed.svg", :class => "edit")), :controller => "sections", :action => "update",:id => section.id, :remote => true) %>


但我真的想通过一些带有普通图片标记的javascript来调用update动作。

类似于:

<%= image_tag("lock_closed.svg", :class => "edit")%>

$(".edit").click(function(){
    if ($(this).hasClass("update")){
    // call update action
    } else {
    //do something else 
    };
})

是否可以通过这种方式调用动作?我一直在使用GET&amp; POSTAjax方法,但我不确定如何利用它们来定位特定的控制器&amp;动作。

2 个答案:

答案 0 :(得分:17)

发送Ajax电话

$(".edit").click(function(){  
  if ($(this).hasClass("update")){     
    $.ajax({
      type: "PUT",
      url: "/sections/<%= section.id %>"
    });
  } else {
    //do something else 
  }; 
})

答案 1 :(得分:0)

为了解决ActionController::InvalidAuthenticityToken的问题 在ajax调用中,我们还应该发送 authenticity_token

 $.ajax({
   url: '/sections',
   data: { authenticity_token: $('[name="csrf-token"]')[0].content, 
           id: <%= section.id %> },
   method: 'POST',
   success: function (res) {
     ....
  }
});