我目前正在使用Ruby on Rails的“Spree”电子商务平台开展一个项目.配置和使用是一件非常愉快的事情.但欢乐在那里停止了.
我正在尝试开发一个完全自定义的界面 – 与默认配置完全不相似的界面.现在Spree文档显示我只有两个选项:
>使用deface覆盖.到处.似乎要覆盖其他覆盖.
>完全重建视图.
当然,使用污点的风格如此戏剧性的变化是一个完整的噩梦; Deface看起来不像是一种可以接受的方式来重写一个完整的UI;它似乎也没有效率.所以我选择完全重建视图.
然后实现了大约8个插件全部依赖于污损覆盖,视图文件硬编码并且目标选择器通常是“flakey”(充其量).
除了狂欢网站上非常小的documentation,我所能找到的只是来自各种会议的幻灯片,其中 – 没有谈话的背景实际上是最小的使用.他们似乎都专注于使用污损覆盖来进行大致简单化的更改,而最近的更改似乎已经超过一年了.
我错过了什么吗?有谁知道执行这样的事情的最佳做法?我应该在哪里看?
解决方法
花了一些时间才知道狂欢的圣地和除了文档之外的指南是狂欢的 github sourcecode.此处提供了文档中缺少的任何内容.
如果要覆盖视图,有两种方法:
1)您想要使用新视图完全覆盖它.在这种情况下,我建议不要更改现有源代码中使用的现有结构并添加新的更改.这样你仍然可以使数据钩子可用于其他插件,具体取决于你的视图的HTML代码结构和标签.
2)使用Deface.如果没有足够的文档,那么开始使用Deface有点噩梦.开始使用Deface的最佳方法是github.
在Deface替换之后测试新视图代码的最重要的实用程序是使用rake任务.
要查看使用标记选择的元素,请使用:
rake deface:test_selector [‘spree / address / _form’,’p’] – 这表示在相应的视图partial中使用p的所有元素.
要查看原始的部分用途:
rake deface:get_result[shared/_head]
这些在deface的github中提到,但这些非常方便,因此强调.