Как охватить таблицу соединений?
Я использую filterrific gem, и мне нужно охватить следующее.
У меня есть 3 таблицы. И я хотел бы использовать модель User, которая возвращает все имена университетов. Все пользователи принадлежат через колледжи. Колледжи - это таблица соединений здесь. Мои модели, как показано ниже (Rails 4.2):
class User < ActiveRecord::Base
has_many :colleges
has_many :universities, :through => colleges
# my current scope which is not working at all
scope :user_university, -> (user_university){joins(colleges: [ {university: :name}]).where("universities.name = ? ", user_university)}
end
class Colleges < ActiveRecord::Base
belongs_to :user
belongs_to :university
end
class University < ActiveRecord::Base
has_many :colleges
has_many :users, :through => colleges
end
Я продолжаю получать ошибки, и я не уверен, как охватить модель через таблицу соединений.
1 ответ
Давайте попробуем как это:
scope :user_university, -> (university_name) {
joins(colleges: :university).where(universities: {name: university_name})
}
Я переименую параметр user_university
в university_name
кстати, user_university
это немного сбивает с толку!