Выбор отношения Rails - PullRequest
0 голосов
/ 19 марта 2010

У меня есть следующие модели:

class User < ActiveRecord::Base
    has_many :results, :dependent => :destroy
    has_many :participants, :dependent => :destroy
    has_many :courses, :through => :participants
end

class Course < ActiveRecord::Base
    has_many :tests, :dependent => :destroy
    has_many :participants, :dependent => :destroy
    has_many :users, :through => :participants
end

class Result < ActiveRecord::Base
    belongs_to :test
    belongs_to :user
  end

class Test < ActiveRecord::Base
    belongs_to :course
    has_many :results, :dependent => :destroy
end

Идея состоит в том, что пользователь has_and_belongs_to_many курсов, курс has_many тестов и каждый тест has_and_belongs_to_many пользователей (результаты). Итак, что является лучшим запросом для выбора каждого результата из одного курса (не теста), а также запроса для выбора каждого результата из одного курса, но от одного пользователя.

Спасибо!

1 Ответ

2 голосов
/ 19 марта 2010

Чтобы получить результаты определенного курса - учитывая, что единственным мостом между ними является модель теста, вам нужно будет включить тест в запрос.

Result.find(:all, :conditions => ["tests.course_id = ?",@course.id], :include => :test)

Для второго запроса:

Result.find(:all, :conditions => ["user_id = ? AND tests.course_id = ?",@user.id, @course.id], :include => :test)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...