这更多是为了实验 - 我知道我可以使用 --full 来做到这一点,但我希望应用程序中的命名空间功能以避免冲突
这个想法是有一个主应用程序 - 它处理身份验证、常见项目、管理屏幕等然后创建引擎以添加更多功能,例如
- 客户关系管理
- 厘米
- 博客
- 维基
- 论坛
- ETC
我可以根据需要为我正在构建的任何类型的应用程序选择这些引擎。这可能吗?
是否只是同时应用 --mountable 和 --full 选项的情况?
实验 - 如果我使用完整选项 add rspec 然后简单添加会不会有任何问题
rails plugin new plugin_name --skip-test-unit --full --dummy-path=spec/dummy
并在 lib\plugin_name\engine.rb
module PluginName
class Engine < Rails::Engine
# this is added by rails when an engine is mountable
# to isolate the plugin and prevent name clashes
isolate_namespace PluginName
# one of the additions to make rspec work from command line for the plugin
config.generators do |g|
g.test_framework :rspec, :view_specs => false
end
end
end
我已经创建了 --full 和 --mountable 引擎,并且让 rspec 最终为任何阅读了一些很棒的文章的人工作(见下文),但想知道这样做对我正在尝试创建的解决方案的更广泛影响
我仍在玩这个并将发布我的发现。
任何帮助/讨论将不胜感激。
请注意
- 为什么我想这样做 - 构建一次使用多次......
- 我绝不希望非技术/客户添加“插件/引擎”——这纯粹是为了娱乐第 1 点。
我遇到的问题...
- 在顶级应用程序上运行服务器。仅当从引擎访问内容时,(我可以通过错误消息看到)我有一个路由问题(root_path 未定义或缺少设计路由) - 正在呈现父应用程序布局,我可以在提取的错误源中看到它. 进步,但还没有雪茄!
有用的参考资料