我有一个产品,用户和类似的模型.用户可以喜欢产品.我正在尝试实现一个简单的按钮,只需点击一下,就可以让用户喜欢产品.然后,like按钮转换为不同的按钮,允许用户不同于产品.很简单.
@H_404_7@解决方法
我已经为上面实现了模型/控制器逻辑.我对javascript / ajax不是很了解,并且想知道实现上述功能的最佳方法是什么.我希望通过ajax处理like / different动作.我正在为我的应用程序使用rails 3和jquery ujs.
谢谢.
我对你的问题的回答很长,所以我写了一个
example application.这是一个片段:
有很多方法可以对这只猫进行修饰,但我喜欢渲染部分和单个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') %>");