Как охватить таблицу соединений?

Я использую 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 это немного сбивает с толку!

Другие вопросы по тегам