У меня есть две модели:
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 был неизвестным столбцом.
Затем я попробовал метод на Post, но он не сработал:
def self.has_been_commented
where("comments.count <= 1")
end
Затем я начал изучать области видимости., и увидел метод .joins, но не был уверен, как я мог тогда указать другой фильтр.Что-то вроде:
scope :has_been_commented, joins(:comments)
но тогда я не уверен, как указать где (: comments.count> = 1)
Извините, если это сбивает с толку ...