사용자 has_many
이 게시 된 포스트 및 사용자 모델이 있다고 가정 해보십시오. User 모델의 속성은 name
입니다.연관된 ActiveRecord 모델의 속성을 효율적으로 참조 (레일즈 4)
각 User#name
을 Post.all.each {|post| puts post.user.name}
과 같은 게시물 개체의 쿼리에 표시하고 싶습니다. 이 별도의 발행보다 가입 오히려 통해이를 찾아 볼 수 있습니다 레일을 알 수있는 방법이 있나요이 작동하지만, 레일은
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 25]]
처럼 각 개별 사용자의 이름을 조회하기 위해 N 포스트의 각각에 대한 데이터베이스 쿼리를 실행 각 인스턴스에 대한 쿼리? Post.all.joins(:user).select('posts.*,users.name')
과 같은 표준 조인을 사용하려고하면 ActiveRecord :: Relation 객체가 적절하게 돌아 오지만 반복되는 동안 행의 각 게시물에 대해 새 쿼리가 계속 실행됩니다.
Try Post.includes (: user) 포함 http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-includes를 읽어보십시오. – cristian