未定义的方法'文章' - 使用其他模型的数据

时间:2015-04-14 23:25:18

标签: ruby-on-rails ruby

有文章和评论。

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")

1 个答案:

答案 0 :(得分:1)

再次阅读您的问题后,我的理解是,您希望找到Comments与其关联value_id的{​​{1}}匹配的所有value_id

您的代码几乎是正确的 - 您需要更多部分才能使其正常工作。您需要使用joinsArticle表格加入Comment表格。然后,使用arel_table参考where函数中的列。

所以你最终会得到这样的东西:

Article

您还可以考虑使用sexy_scopes来更轻松地访问您的列。