Fer*_*don 7 ruby ruby-on-rails styling spree deface
首先在Programmers.SE上输入,但想象一下这可能更适合这里 - 纯粹是因为它不是要求就特定技术问题提出建议.随意投票移动!
我目前正在使用Ruby on Rails 的"Spree"电子商务平台开展一个项目.配置和使用是一件非常愉快的事情.但欢乐在那里停止了.
我正在尝试开发一个完全自定义的界面 - 与默认配置完全不相似的界面.现在Spree文档显示我只有两个选项:
deface替代.到处.似乎要覆盖其他覆盖.当然,使用污点的风格如此戏剧性的变化是一个彻头彻尾的噩梦; Deface看起来不像是一种可以接受的方式来重写一个完整的UI; 它似乎也没有效率.所以我选择完全重建视图.
然后实现了大约8个插件全部依赖于污损覆盖,视图文件硬编码,目标选择器通常是" flakey "(充其量).
除了狂欢网站上非常少的文档,我所能找到的只是来自各种会议的幻灯片,其中 - 没有谈话的背景实际上是最小的使用.他们似乎都专注于使用污损覆盖进行大致简单的更改,而最近的更改似乎已超过一年.
我错过了什么吗?有谁知道执行这样的事情的最佳做法?我应该在哪里看?
我已经遇到了同样的问题,正如你所建议的,当有很多插件使用deface时,最好使用deface而不是覆盖整个视图.花了一些时间才知道狂欢的圣地和除文档之外的指南是狂欢的github源代码.此处提供了文档中缺少的任何内容.
如果要覆盖视图,有两种方法:
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]
Run Code Online (Sandbox Code Playgroud)
这些在deface的github中提到但是这些非常方便,因此强调.
Deface是一场巨大的灾难。整个概念是一个巨大的反模式,它导致一个完整的、彻底的、不可调试的噩梦。我真的希望 Spree 社区远离它,尤其是插件,并为应用程序内的视图级别定制提供更好的选择。
在 Spree 中不使用 Deface 的最大缺点是您的自定义代码会偏离 Spree 的“库存”视图代码,并且当您升级 spree 时,您有两个不同的(您的自定义和 spree 默认)版本来协调每次升级狂欢。而且您必须逐个文件地执行该操作。
这很乏味,但我通过在我制作的每个视图中插入注释“开始自定义代码”和“结束自定义代码”来让自己更容易一些,这些视图将狂欢默认代码与我自己的代码混合在一起。这使升级过程更加顺畅,但仍然没有简单的答案。
如果 Winston Churchill 是一名 Rails 开发人员,他会说“Spree 中的视图覆盖是最糟糕的定制形式,除了所有其他形式。”
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |