2012-11-07 70 views
1

我有一個的has_many和的has_many:通過關係,看起來像這樣...NoMethodError(未定義的方法`作用域」類:模塊):

class Guestlist < ActiveRecord::Base 
    belongs_to :venues 

    has_many :patrons 
    has_many :users, :through => :patrons 

    attr_accessible :capacity, :end_time, :name, :start_time, :venue_id 
end 

class Patron < ActiveRecord::Base 
    belongs_to :guestlists 
    belongs_to :users 
    attr_accessible :guestlist_id, :user_id, :checked_in 
end 

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    attr_accessible :name, :email, :password, :password_confirmation, :remember_me 

    has_many :patrons 
    has_many :guestlists, :through => :patrons 
end 

我試圖‘通過’guestlist訪問用戶對象...

@guestlist = Guestlist.find(params[:id]) 
@guests = @guestlist.users.order('name ASC') 

和以下錯誤拋出...

NoMethodError (undefined method `scoped' for Users:Module) 

我一直在尋找各地FO解決方案,但沒有任何工作。請幫忙!

回答

2

在模型Patron中查看您的關聯有誤。 Singularize usersguestlists。參考更多here

class Patron < ActiveRecord::Base 
    belongs_to :guestlist 
    belongs_to :user 
    attr_accessible :guestlist_id, :user_id, :checked_in 
end 
+0

謝謝!仍在學習導軌。 has_many關係不應該是單一的權利? – Adgezaza

+0

你不會碰巧知道在哪裏可以查看如何更新沒有任何主鍵的顧客表? – Adgezaza

+0

@Adgezaza ..在rails中的每一個關聯都有與之相關的單數或複數形式。這只是表明該關聯是否是一對一,一對多等。通過協會閱讀會讓你很好地理解什麼是基本關聯。當您將數據插入用戶或賓客列表時,贊助人表格aka連接表格將自行更新。 – AnkitG

相關問題