1
class User
has_many :posts do
def latest(report_date)
order(:report_date).where('report_date <= ?', report_date).limit(1)
end
end
end
class Post
belongs_to :user
end
각 사용자의 마지막 게시물이있는 사용자 레코드를 검색하고 싶습니다.범위를 정의하여 has_many 연관의 레코드 하나를 얻는 방법은 무엇입니까?
나는이 작업을 수행 할 수 있습니다 :이 쓸 수있는 더 좋은 방법이
users = User.all.map{|user| user.posts.latest(7.weeks.ago).first}.compact
있습니까? 예 :
users = User.posts.latest(7.weeks.ago).all
(해당하는 경우)?
에서 latest_post의 has_one 관계가 액티브 작동하지 않습니다에 액세스 할 수 있습니다 . User.latest_post.all 번호 'latest_post'정의되지 않은 방법으로 오류 <클래스 : 0x2e231dff> 내가 User.all.map을 {수행해야 | X | x.latest_post} 하지만 그렇게되면 연결이 끊어지고 열심히로드되는 것을 방지 할 수 있습니다. 예 : User.active_user.includes (: 추종자) .latest_post.all <- 이 작동하지 않습니다. – user2371769
예제 컨트롤러와 뷰 코드를 포함하도록 답변을 업데이트했습니다. – Swards
당신의 솔루션은 훌륭하게 작동했습니다. 하나 더 범위를 추가해야했습니다. – user2371769