10

我有这个在我的控制器link_to中调用动作:update

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


但我真的很想update通过一些带有普通图像标签的javascript来调用这个动作。

所以像:

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

和:

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

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

4

2 回答 2

18

发送 Ajax 调用

$(".edit").click(function(){  
  if ($(this).hasClass("update")){     
    $.ajax({
      type: "PUT",
      url: "/sections/<%= section.id %>"
    });
  } else {
    //do something else 
  }; 
})
于 2013-04-09T05:50:35.523 回答
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) {
     ....
  }
}); 
于 2019-02-05T15:40:30.783 回答