2016-01-21 60 views
0

我使用的是filterrific寶石,並且需要對以下內容進行範圍。如何範圍連接表?

我有3張桌子。我希望範圍的用戶模型,返回所有大學的名稱。所有用戶都屬於學院。大學是這裏的連接表。我的模型如下(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_universityuniversity_name順便說一句,user_university是那種混亂!

+0

它的工作!非常感謝! 好吧會重命名它! – Purry