如何通过关联

时间:2015-08-05 21:38:34

标签: ruby-on-rails ruby

Rails和编程很新。

我有以下关联:

class Comment < ActiveRecord::Base
belongs_to :post
belongs_to :user

class Post < ActiveRecord::Base
has_many :comments
belongs_to :user

class User < ActiveRecord::Base
has_many :posts
has_many :comments

在我的用户#show视图中,我想创建一个包含Commented On和L​​ink的列的表。我希望Commented On列成为用户评论的帖子的名称。

我的评论表有post_id和user_id外键,这些外键在生成评论时会被填充。我正在努力弄清楚如何根据post_id

检索帖子标题

我想做以下事情:

<% @user.comments.each do |comment| %>
    <tr>
        <td><%= comment.post_id.title %></td>
        <td>|</td>
        <td><%= link_to 'Show', post_path(comment.post_id) %></td>
    </tr>
<% end %>

“comment.post_id.title”没有在视图中嵌入帖子的标题。

有没有办法做我想解释的事情?

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

<% @user.comments.includes(:post).each do |comment| %>
  <tr>
    <td><%= comment.post.title %></td>
    <td>|</td>
    <td><%= link_to 'Show', post_path(comment.post) %></td>
  </tr>
<% end %>