2

我有两个关联的表,用户和列表。此连接语句在我的所有控制器操作中都可以正常工作:

@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>

如何在 ActiveRecord 模型中编写/使用自定义方法来重用连接?(或者我可以吗?)

4

1 回答 1

3

您尝试编写应该看起来像的类方法

def self.list_joined
  joins(:surveys).where(surveys: {survey_id: 1})
end

selfin 方法定义指向这个定义所在的类,User.

于 2013-09-06T22:47:55.163 回答