2016-03-01 3 views
0
class Entry < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :job 
end 

class User < ActiveRecord::Base 
    has_many :entries 
    has_many :jobs, through: :entries 
end 

class Job < ActiveRecord::Base 
    belongs_to :job_type 
    has_many :entries 
    has_many :users, through: :entries 
end 

Я пытался какое-то время и, похоже, не мог этого получить. Я хочу выбрать все задания, назначенные пользователю (user_id: 1) через записи. Любая помощь будет большой.Rails has_many через запрос ActiveRecord

Примечание: Я пытался

Job.find(3).entries 

, но это просто возвращает записи, которые имеют ряд должностную 3.

ответ

1

Другие (текущие) ответы требуют не менее двух запросов к базе данных. Это должно дать вам то, что вы хотите в одном:

Job.joins(:users).where(users: { id: 1 }) 
+0

Отлично, отлично работает! Большое спасибо (и Стиву и Джеку) – user3007294

1
u = User.find(1) 
what_you_want = u.jobs 
Смежные вопросы