0

Post モデルに、ユーザーの投稿を取得するメソッドがあります

  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という外部列を共有しているため、 usersテーブルから各ユーザーの写真を取得したいことです

私もポストモデルを持っています

belongs_to :user, :foreign_key => 'post_id'

そしてユーザーモデルで

has_many :post, :foreign_key => 'post_id'
4

1 に答える 1

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) %>

投稿ごとに各ユーザーの画像を表示します。

于 2012-08-23T10:05:32.473 に答える