RubyonRails 4:用于连接的ActiveRecord方法
我有两个相关联的表,用户和列表。此join语句在我的所有控制器操作中都可以正常工作:RubyonRails 4:用于连接的ActiveRecord方法,activerecord,ruby-on-rails-4,dry,Activerecord,Ruby On Rails 4,Dry,我有两个相关联的表,用户和列表。此join语句在我的所有控制器操作中都可以正常工作: @users = User.joins(:lists).where(lists: {list_id: 1}) 在我的用户模型中,我将这样做: def list_joined self.joins(:surveys).where(surveys: {survey_id: 1}) end 因此,在控制器操作中,我可以执行以下操作: @users = User.list_joined 但这给了我一个错
@users = User.joins(:lists).where(lists: {list_id: 1})
在我的用户模型中,我将这样做:
def list_joined
self.joins(:surveys).where(surveys: {survey_id: 1})
end
因此,在控制器操作中,我可以执行以下操作:
@users = User.list_joined
但这给了我一个错误:
undefined method `list_joined' for #<Class:0x007f93a14138e0>
未定义的方法“list\u joined”#
如何在ActiveRecord模型中编写/使用自定义方法来重用联接?(或者我可以吗?您尝试编写如下所示的类方法
def self.list_joined
joins(:surveys).where(surveys: {survey_id: 1})
end
方法定义中的
self
指向类,其中该定义为,User
Ugh。我不敢相信我不知道如何编写类方法。我想我到目前为止写的都是实例方法。谢谢