我有三个与之合作的模特。目标,评论和表示法。目标有很多评论和评论有很多符号(较小的评论,非常类似于答案的评论)。
我试图通过附加
来显示每条评论的注释<%= render 'notations/notations' %>
这部分循环遍历每个符号以显示它:
<% @notations.each do |notation| %>
<%= notation.content %><br />
Posted <%= time_ago_in_words(notation.created_at) %> ago by
<%= link_to notation.user.username, user_path(notation.user) %>
<% end %>
我的问题是这些注释出现在目标显示页面上的评论中,其中已有新的评论表单。看一看。
目标控制器:
def show
@comments = Goal.comments.order("created_at DESC")
@comment = Comment.new
@notations = @comment.notations
end
@notations = @comment.notations
不起作用,因为我已经为新的@comment保留了@comment。我还尝试了@notations = Goal.comment.notations
但是这给出了一个没有方法错误的评论。我的问题是如何才能显示所显示的评论以显示他们的注释?
答案 0 :(得分:1)
答案here似乎是您正在寻找的答案。有一种方法可以将本地(不是实例)变量传递给partial。这样您就可以使用comment
而不用担心与@comment
的冲突。
以下是一个例子:
<!-- on goal show page -->
<% @comments.each do |comment| %>
<!-- show the comment content then show the partial -->
<%= render 'notations/notations', comment: comment %>
<% end %>
<!-- in partial, you now have access to comment -->
<% notations = comment.notations %>
<% notations.each do |notation %>
<!-- show the notation -->
<% end %>