나는 두 가지 모델이 첫 번째 항목 찾기 :레일 - 액티브 쿼리 - relationship.count 적어도 1
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
나는 적어도 하나 개의 댓글이 가장 최근의 포스트를 찾기 위해 시도하고있어합니다.
나는이 시도 :@post = Post.find_by_sql("SELECT *, count(comment.id) AS num_of_comments
FROM post
INNER JOIN comment ON post.id = comment.post_id
WHERE num_of_comments >= 1").last
을하지만 num_of_comments 알 수없는 열였다 말하는 오류가 발생했습니다.
는 그럼 난 이후에 방법을 시도하지만, 작동하지 않았다 : 다음 범위에 찾기 시작
def self.has_been_commented
where("comments.count <= 1")
end
하고 .joins 방법을 보았지만, 그때 지정할 수 있는지 확실하지 않았다 다른 필터. 뭔가처럼 : 그 혼란 경우
은 약 나는 그것을 테스트 할 수 없기 때문에 대답,하지만 같은이 게시되지 않음 : –
알 수없는 열'comments.id '가 발생했습니다 – MAckerman
생성 된 SQL은 입니다. ActiveRecord :: StatementInvalid : Mysql :: Error : 알 수없는'comments.id '열이'having clause ' : SELECT'post'. * FROM'post' INNER JOIN'comment' ON'comment'.post_id' ='post'.id' HAVING count (comments.id)> 1 모든 것이 HAVING에 좋을 것 같습니다. section – MAckerman