我有三个模型需要连接在一起(有4个模型在玩,但我只需加入其中的三个)。 4个模型是用户,关键字,问题,关联。
这些是模型中的关系
模型是 -
class User < ActiveRecord::Base
has_many :associations, dependent: :destroy
has_many :keywords, :through => :associations
class Keyword < ActiveRecord::Base
has_many :associations, dependent: :destroy
has_many :users, :through => :associations
has_many :questions, dependent: :destroy
class Association < ActiveRecord::Base
belongs_to :keyword
belongs_to :user
class Question < ActiveRecord::Base
belongs_to :keyword
现在我需要使用.joins检索特定用户的关键字的所有问题(例如user_id = 2)。
任何想法我怎样才能做到这一点。
答案 0 :(得分:1)
你应该使用
Keyword.joins(:questions, :users).includes(:questions).where(users: {id: 2})
答案 1 :(得分:1)
请试试这个:
Question.joins(keyword: [:user]).where(users: {id: 2})