有文章和评论。
article has_many :comments
comment belongs_to :article
我想在评论belongs_to的文章中获得value_id等于value_id属性的所有注释。
class Comment < ActiveRecord::Base
belongs_to :article
def self.value_comments
where(value_id: self.article.value_id)
end
end
我收到错误:
undefined method `article' for #<Class:0x007fd2a7e46d18>
控制器
@value_comments = Comment.value_comments.where(user_id: current_user.id).order("created_at desc")
答案 0 :(得分:1)
再次阅读您的问题后,我的理解是,您希望找到Comments
与其关联value_id
的{{1}}匹配的所有value_id
。
您的代码几乎是正确的 - 您需要更多部分才能使其正常工作。您需要使用joins
将Article
表格加入Comment
表格。然后,使用arel_table
参考where函数中的列。
所以你最终会得到这样的东西:
Article
您还可以考虑使用sexy_scopes来更轻松地访问您的列。