问题描述
|
我最近一直在与Rails Engines一起工作,特别是考虑让RefineryCMS和Spree在同一安装上工作,但是关于在Edge Rails上计划和开发的信息却很少。所以我想知道是否有人错过了Rails + 1计划的地方。
我已经调查过:
邮件清单
灯塔
Google(关于已完成但未计划的好的信息)
github历史记录(提交消息通常没有帮助)
解决方法
在此阶段,最好的选择是从Rails的各个部分读取
CHANGELOG
文件,并尝试从中搜集以下内容:
行动包
主动支持
活动记录
活动模型
行动邮件
主动资源
ties
除此之外,还有GitHub提交可能会提供更多的见解(哈哈哈,我很有趣,嘿?)或Lighthouse,这有时对于查找更改背后的原因非常有用。
我希望在Rails 3.1发行时会有类似3.0发行说明的内容,其中详细描述了更改。至于谁对此负责,没人知道。
至于Refinery和Spree,这两个项目都需要将其代码分离到单独的模块中,而不是污染全局名称空间。诸如“ѭ1”之类的控制器将需要变为“2ѭ”。该控制器的视图将需要移动到app/views/refinery/pages
中,并且模型将在引擎自身内部的app/models/refinery
中。
这样做的原因是,应用程序能够使用自己的类自己污染\“ global \”命名空间,而不会覆盖引擎的功能。它还可以阻止引擎踩到对方的脚趾。
让Refinery和Spree都这样做的问题是双重的。 1)如果您听说过“成群猫”这一短语,除了用狂犬病的僵尸狮子代替猫外,其他的都差不多。 2)您将破坏与使用Spree或Refinery的每个应用程序的向后兼容性。
,我在精炼CMS核心团队中。
我们已经考虑将Spree和Refinery建立起来并运行一段时间。
Refinery CMS已升级到Rails 3,并且身份验证引擎已更改为与Spree相同,以使两者之间更容易集成。这就是已经做的。
就计划的内容而言,我们正在等待Rails 3.1的发布,因为有一些功能可以使并行运行两个项目变得更加容易。 Rails 3.1包含的重要功能之一是能够对Rails Engine进行范围调整,以使其不会干扰其他任何内容。