ruby on rails从视图访问相关表

时间:2012-08-23 09:56:42

标签: ruby-on-rails model associations

我的帖子模型中有一个方法可以获得用户帖子

  def self.find_user_posts(user_id)
    where(:user_id => user_id).limit(15)
  end

然后在视图我有

<% Post.find_user_posts(@user.id).each do |p| %>
    <%= render_post(p) %>
<% end %>

然后调用名为/posts/_post.html.erb

的部分

我的问题是我想从用户表中获取每个用户图片,因为两个表共享一个名为 user_id 的外来列

我也有帖子模型

belongs_to :user, :foreign_key => 'post_id'

并在用户模型

has_many :post, :foreign_key => 'post_id'

1 个答案:

答案 0 :(得分:1)

您可以简化此操作。

在您的视图中

<% @user.posts.limit(15).each do |post| %>
  <%= render_post(post) %>
<% end %>

这将允许您删除

def self.find_user_posts(user_id)
    where(:user_id => user_id).limit(15)
end

如果需要,应该是named_scope。

然后在你的_post部分,你应该能够做类似

的事情
<%= image_tag(post.user.image_url) %>

每个帖子显示每个用户的图像。