通过id查找注释变量已设置为new的注释

时间:2017-06-27 18:50:52

标签: ruby-on-rails ruby

我有三个与之合作的模特。目标,评论和表示法。目标有很多评论和评论有很多符号(较小的评论,非常类似于答案的评论)。

我试图通过附加

来显示每条评论的注释
<%= 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但是这给出了一个没有方法错误的评论。我的问题是如何才能显示所显示的评论以显示他们的注释?

1 个答案:

答案 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 %>