【发布时间】:2013-05-02 16:56:45
【问题描述】:
在作为isolate_namespace Rails 引擎gem 的父模块中嵌套子模块的正确语法是什么?
# lib/myengine/engine.rb
module MyEngine
class Engine < Rails::Engine
isolate_namespace Myengine
# def ...
end
end
例如。父模块是 MyEngine,子模块是 Blog。 MyEngine 将共享公共域,如 CRUD、Taggable、Searchable 等,这将保持 gem 代码 DRY 并与主应用程序(MyApp)隔离,同时继承隔离的命名空间和引擎。
这两种方法中的任何一种都正确吗?有什么重构建议吗?
# A
# lib/myengine/blog.rb
module MyEngine
module Blog
# def ...
end
end
# B
# lib/myengine/blog.rb
module MyEngine
class Engine < Rails::Engine
isolate_namespace Myengine
module Blog
# def ...
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby gem