Если предположить, что у этой ассоциацииВыберите несколько значений из связанных моделей рельсов
User have_many posts
Post belongs_to user
User Post
----------------
id id
name title
user_id
Как перечислить только после заголовка и имя с включает в себя/присоединяется?
(список сообщений [название - имя пользователя])
@posts = Post.includes(:user).select('........')
не предлагают эту
@posts = Post.all.each {|p| p.user.username}
__________________UP_____________________
Он работал для объединения 2 таблиц.
Что делать, если я хочу использовать его для более сложного примера?
проверить, что мой предыдущий вопрос optimize sql query rails
@ ответ Humza отчасти работал. это может быть что-то вроде этого
@posts = Post.joins(:user, :category).paginate(:page => params[:page]).order("created_at DESC")
, но он не отображает сообщения, которые не имеют категории
Я также нужно отобразить Gravatar, но я думаю, что я могу просто использовать user.email в usr_email и используйте gravatar_for (post.usr_email), но для этого мне нужно настроить помощника gravatar.
posts_controller.rb
def index
@posts = Post.includes(:user).includes(:comments).paginate(:page => params[:page]).order("created_at DESC")
end
index.html.erb
<%= render @posts %>
_post.html.erb
<%= gravatar_for post.user, size:20 %>
<%= link_to "#{post.title}", post_path(post) %>
<%= time_ago_in_words(post.created_at) %>
<%= post.comments.count %>
<%= post.category.name if post.category %>
Вы пинали меня в правильном направлении) Теперь у меня есть следующее: Post.joins (: user) .joins ("LEFT OUTER JOIN category ON categories.id = posts.category_id"). Select ("posts.id как id, posts .title AS title, posts.created_at AS created_at, categories.name как cat_n, users.email AS user_em "). paginate (: page => params [: page]). order (" created_at DESC "). – kirqe