【发布时间】:2013-12-27 23:41:19
【问题描述】:
我的 rails 应用程序有设计(帖子),其中有 cmets,这些 cmets 可以被喜欢(投票)。
为了在设计展示页面上显示这些 cmets,我的 DesignsController 如下所示:
def show
@comments = @design.comments
end
现在,在视图中,我有一个 each 块来列出每个 cmets,但这已被放入 ajax 的部分中。
每个块的部分看起来像这样(我会简化)
<% @design.comments.each do |comment| %>
<%= comment.body %>
<p class="comment_vote">
<%= render("comments/like_button") %>
</p>
<% end %>
这里是like_button部分:
<% if current_user.voted_on?(@comment) %>
<%= link_to polymorphic_path([@targetable, @comment.design, @comment], action: :unlike), :method => :post, :class => ("liked" if current_user.voted_on?(@comment)), :remote => true do %>
Unlike
<% end %>
<% else %>
<%= link_to polymorphic_path([@targetable, @comment.design, @comment], action: :like), :method => :post, :remote => true do %>
Like
<% end %>
<% end %>
如您所见,点赞按钮也在另一个部分中,这需要我使用全局变量(@comment,而不是评论)。
没有 ajax,我可以让用户喜欢每个单独的评论,它只是刷新页面,因为用户喜欢“局部变量”comment。现在我正在使用 ajax,在我的 like.js.coffee 文件中,我必须使用一个全局变量 @comment,它还没有在我的控制器中定义。所以发生的事情是 ajax 工作正常,每条评论都被喜欢,而不仅仅是用户喜欢的特定评论。任何人都可以阐明这个问题并帮助我解决它吗?我宁愿使用 ajax 然后页面刷新。
谢谢,一如既往
编辑 @muistooshort 的答案仍然是同时喜欢所有的 cmets
【问题讨论】:
-
您的
like_button部分中有什么内容?可以发一下内容吗? -
我编辑了我的帖子以包含
like_button
标签: ruby-on-rails ruby ajax ruby-on-rails-4