2

関連する 2 つのテーブル、Users と Lists があります。この結合ステートメントは、すべてのコントローラー アクションで正常に機能します。

@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

selfメソッド定義では、この定義が であるクラスを指しUserます。

于 2013-09-06T22:47:55.163 に答える