如何通过has_many关系访问其他模型中的字段?

时间:2010-08-23 04:48:05

标签: ruby-on-rails ruby

我目前正在使用:

@user = User.find(params[:id])
@posts = @user.posts
@comments = @user.comments

要在我的模板中使用此代码显示我的所有评论:

<% @user.comments.each do |p| %>
  <p>Commented on <%= p.post.user_id %>'s post</p>
  <p><%= p.body %></p>
<% end %>

每个帖子都有一个'user_id'列,这是创建帖子的用户的ID。我可以输出这个'user_id'数据,因为Post和User模型has_many:comments,而Comment模型属于Post和User模型。

我想使用p.post.user_id中的'user_id'数据从User数据库表中查找用户名。用户的名称位于“名称”列中,用户的ID位于“id”列中。如何在用户控制器中使用p.post.user_id然后找到具有相同ID的用户,以便我可以输出他们的名字?

1 个答案:

答案 0 :(得分:1)

如果您有belongs_tohas_many,则可以从Post对象访问整个User对象:

<%= p.post.user.name %>