我对引擎中的命名空间有点困惑。在使用哪里的 Rails 引擎中isolate_namespace
,
module Blog
class Engine < Rails::Engine
isolate_namespace Blorgh
end
end
何时需要使用命名空间引用对象Blog
(例如Blog::Post
vs just Post
)?
例如,在Post
引擎资源的控制器中,可以这样做Post.find
吗?什么时候绝对需要你使用Blog::Post
?
同样在模型关联中,假设 Post has_many :comments
。不知何故,我期望将其定义如下:
class Post < ActiveRecord::Base
:has_many "blog/comments"
end
因为一切都是命名空间(模型,表名,...),但它看起来has_many :comments
只是工作。为什么在关联键中不使用命名空间,并且在Comment
主机应用程序中存在资源的情况下,rails 如何知道Comment
我指的是哪个?