小编典典

简单的喜欢/不喜欢按钮,带有rails 3,jquery和ajax

ajax

我有产品,用户和喜欢的模特。用户可以喜欢产品。我正在尝试实现一个简单的“喜欢”按钮,单击该按钮即可使用户喜欢产品。然后,“喜欢”按钮转换为“不一样”按钮,从而允许用户对产品进行不一样。非常简单。

我已经为上述实现了模型/控制器逻辑。我对javascript /
ajax不太满意,并且想知道实现上述功能的最佳方法是什么。我希望通过ajax处理喜欢/不喜欢的动作。我正在为我的应用程序使用Rails 3和jquery
ujs。

谢谢。


阅读 280

收藏
2020-07-26

共1个答案

小编典典

我对您的问题的回答很长,因此我编写了一个示例应用程序。这是一个片段:

有很多方法可以使这只猫皮肤化,但是我喜欢呈现部分和单个ujs模板。

_like_button.html.erb

<% if like = current_user.likes.find_by_product_id(@product.id) %>
  <%= form_for like, :html => { :method => :delete },
                     :remote => true do |f| %>
    <%= f.submit "Unlike" %>
  <% end %>
<% else %>
  <%= form_for current_user.likes.build(:product_id => @product.id), :remote => true do |f| %>
    <%= f.hidden_field :product_id %>
    <%= f.hidden_field :user_id %>
    <%= f.submit "Like" %>
  <% end %>
<% end %>

toggle.js.erb,其中"#like"的div包含以下形式:

$("#like").html("<%= escape_javascript render('like_button') %>");
2020-07-26