Rails 中的模型命名空间问题
我在 Rails 3.1 中遇到命名空间问题。我有一堂课,我们称之为a。
#/app/models/a.rb
class a
#some methods
def self.method_from_a
#does things
end
end
但我还有另一个在不同命名空间中具有相同名称的类。
#/app/models/b/a.rb
class b::a
def method
return a.method_from_a
end
end
当我调用 b::a.method 时,我得到:
NameError: uninitialized constant b::a::a
我确信这是一个简单的解决方案,我只是想念它。
I am having an issue with namespaces in Rails 3.1. I have a class, let's call it a.
#/app/models/a.rb
class a
#some methods
def self.method_from_a
#does things
end
end
But I also have another class that has the same name in a different namespace.
#/app/models/b/a.rb
class b::a
def method
return a.method_from_a
end
end
When I call b::a.method though I get:
NameError: uninitialized constant b::a::a
I am sure it is a simple solution, I am just missing it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
前缀
a
与::
:这个(即作用域运算符)也有解释 此处:
顺便说一句,在 Ruby 中,类名应该以大写字母开头。
Prefix
a
with::
:This, (i.e. the scope operator) is also explained here:
By the way, in Ruby class names should start with an upper case letter.