2010-09-29 142 views
0

我試圖在rails中執行多對多關係。這是我的第一次嘗試,但我很難成功。我希望能夠做@ user.properties或@ property.users。has_many:通過NameError中的關聯結果

#property.rb 
has_many :ownages, :dependent => :destroy 
has_many :users, :through => :ownages 

#user.rb 
has_many :ownages, :dependent => :destroy 
has_many :properties, :through => :ownages 

#ownages.rb 
belongs_to :user 
belongs_to :property 

當我試試這個:

#SomeExampleController 
p = Property.find_by_id(4) 
p.users 

我得到:

NameError: uninitialized constant Property::Ownage 

同樣爲這樣的:

#SomeExampleController 
u = User.find_by_id(1) 
u.properties 

這也給了我:

NameError: uninitialized constant User::Ownage 

任何人都能幫助我嗎?非常感謝你提前,我打破了這個念頭。 :-)

回答

2

嗯,ownages.rb是一個錯字?您的型號名稱應該是單數。所以:

class Ownage<Activerecord::Base 
end 

Rails會自動將複數結尾添加到您的模型中。否則你的關係看起來很好。

+0

我不知道這是怎麼爬進去的,但這確實是我的錯誤!非常感謝,這爲我修好了。 – 2010-09-29 10:42:48