Rails:命名空间以非预期的方式应用于关联

时间:2013-04-24 16:33:40

标签: ruby-on-rails activerecord namespaces associations

我有一个与另一个命名空间模型Collection::Publicationhas_many关系的命名空间模型Library::Publication。关联声明如下:

has_many :library_publications, :dependent => :destroy, :class_name => "Library::Publication"

然而,当我尝试这样的事情时:

@collection_publication.library_publications

我收到此错误:

NameError at /
uninitialized constant Collection::Publication::Library::Publication

似乎Rails是关联模型的命名空间,即使我明确定义了class_name。我理解正确吗?如果是这样,我该怎么办才能纠正这种情况呢?

1 个答案:

答案 0 :(得分:0)

这是由于Library::Publication声明中的拼写错误:

class Libary::Publication
  ...
end

虽然错误消息声明它没有找到Collection::Publication::Library::Publication,但这一定只是它看起来的最后一个地方。正确定义Library::Publication后,Rails会毫无问题地找到它。