class Comment < ActiveRecord::Base
belongs_to :article
end
class Article < ActiveRecord::Base
has_many :comments do
def posted_comments
#user_comment is just an attribute of comment.
collect(&:user_comment)
end
end
end
获取发布的评论:
Article.first.comments.posted_comments
=> ["Nice article posted", "comment 2 added", "Good article"]
上面的一个是取得正确的结果,但我希望有一个更紧凑的版本。 像这样:
Article.first.posted_comments
#this should list the collection of comments on the article.
我们可以使用Rails ActiveRecord做这样的事情吗?
答案 0 :(得分:0)
对于简单的解决方案,您可以定义调用嵌套关联的名为posted_comments
的方法,如下所示:
def posted_commments
self.comments.posted_comments
end
或者,请尝试以下代码:
has_many :posted_comments, -> { select("user_comment") }, class_name: "Comment"