2016-01-21 3 views
0

Я использую драгоценный камень filterrific, и вам необходимо охватить следующее.Как объединить таблицу соединений?

У меня есть 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 

Я продолжаю получать ошибки, и я не уверен, как объем модели с помощью таблицы объединения.

ответ

2

Пусть попробовать, как это:

scope :user_university, -> (university_name) { 
    joins(colleges: :university).where(universities: {name: university_name}) 
} 

переименовать параметр user_university к university_name BTV, user_university отчасти сбивает с толку!

+0

Это сработало! Спасибо огромное! Allright переименует его! – Purry

Смежные вопросы