从JavaScript调用Rails应用

问题描述 投票:10回答:2

我有这个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 
    };
})

是否有可能调用的动作这种方式?我一直在寻找使用GETPOSTAjax方法了一点,但我不知道如何利用它们来针对特定的控制器和行动。

javascript ruby-on-rails ajax
2个回答
17
投票

发送Ajax调用

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

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) {
     ....
  }
}); 
© www.soinside.com 2019 - 2024. All rights reserved.