Ruby 在 rails 上:Button_to 检查 post 结果并更新当前页面

Ruby on rails: Button_to Check post result and update current page

在我的 UI 中,我有 table 个项目。每行都有一个收藏夹按钮。我正在使用按钮进行 rails 调用以添加数据库关联。

我一直在研究如何检查调用按钮中 post 响应的结果。

如果成功,我想禁用我页面上的收藏夹按钮,如果不成功,我什么都不想要。有没有办法检查我的呼叫按钮中的 post 响应,有没有办法留在页面上?

这是我的示例

<%= button_to create_favorite_path(res.id), class: "favorite-btn-#{res.id} btn btn-default" do%>
  <i class="glyphicon glyphicon-star-empty"></i>
<% end %>

要在单击按钮时留在页面上,您需要将 remote: true 添加到按钮调用中。默认情况下,这将使您的按钮请求 AJAX 调用。

Read more about the button_to helper here.

<%= button_to create_favorite_path(res.id), remote: true, class: "favorite-btn-#{res.id} btn btn-default" do%>
  <i class="glyphicon glyphicon-star-empty"></i>
<% end %>

然后要查看此 AJAX 请求的响应,您需要编写一些 javascript.

在您的 application.js 或此页面上的任何 javascript 文件中:

$(document).on('ajax:success', 'form', function(event, data, status, xhr) {
  // do something with data or status
});

Read more about working with javascript in Rails here.