has_many:通过关联导致NameError

时间:2010-09-29 09:30:47

标签: ruby-on-rails activerecord model data-modeling

我正在尝试在rails中建立多对多的关系。这是我的第一次尝试,但我很难成功。我希望能够做@ user.properties或@ property.users。

#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

有人能帮帮我吗?非常感谢你提前,我正在打破这个问题。 : - )

1 个答案:

答案 0 :(得分:2)

嗯,ownages.rb是拼写错误?您的型号名称应为单数。所以:

class Ownage<Activerecord::Base
end

Rails会自动将复数结尾添加到模型中。否则你的关系看起来很好。