2014-10-12 67 views
0

我有兩個型號有belongs_to的命名範圍在Ruby中加入on Rails的4

class Faq < ActiveRecord::Base 
    belongs_to :faq_type 
end 

class FaqType < ActiveRecord::Base 
    has_many :faqs 
end 

我想打一個學生的範圍,只有用FaqType獲取常見問題解答「學生」

我試過的

class Faq < ActiveRecord::Base 
    belongs_to :faq_type 

    scope :student, -> { joins(:faq_type).where('faq_type.name = ?', 'Student') } 
end 
許多變化名稱

這似乎沒有工作。

一般的錯誤信息是一樣的東西..

PG::UndefinedTable: ERROR: missing FROM-clause entry for table "faq_type" 
SELECT "faqs".* FROM "faqs" INNER JOIN "faq_types" ON "faq_types"."id" = "faqs"."faq_type_id" WHERE (faq_type.name = 'Student') 

誰能解釋這是怎麼回事就在這裏,閱讀文檔http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html#method-i-scope似乎在暗示這是正確的做法。

謝謝!

回答

0

可能是你已經錯過了這部分

.where('faq_type.name = ?', 'Student') } 

Student.name或別的東西。請仔細檢查。