Spreecommerce文件位置

时间:2012-11-30 14:32:50

标签: spree

我喜欢在本地部署Spreecommerce,并希望实现自己的更改。我已成功部署,但我不知道实际源文件的来源或运行位置。我需要帮助来解决这个问题。请任何人帮助我。

先谢谢

1 个答案:

答案 0 :(得分:1)

Bundler将依赖的gems下载到缓存位置,但是如果你想要进行代码更改,你不想搞砸它。当您更新宝石时,您在此处更改的任何内容都将丢失。

您需要熟悉标准的rails定制方法。按照最少侵入的顺序:

  • 装饰器 - 主机应用程序的应用程序文件夹结构(资产,控制器,模型,覆盖,视图等)中的文件,它们使用语法Spree::[whatever class].class_eval do更改Spree对象上的单个方法,然后使用标准的ruby方法定义(后跟end)。这些文件与同一文件夹中的Spree对应文件匹配,仅在您的应用程序中而不是Spree的源文件中。并在文件名末尾添加_decorator。请在此处查看示例:https://github.com/binaryphile/spree_dibs_1.2/blob/master/app/controllers/spree/admin/payments_controller_decorator.rb
  • 覆盖整个Spree文件 - 将Spree源文件复制到应用程序中的相同位置,然后进行必要的源更改。这将覆盖Spree的同名文件(这次没有_decorator)。您负责将Spree将来的所有代码更改迁移到您的副本中,这就是不太理想的原因。
  • 分割Spree源代码 - 将您的Gemfile引用更改为您的版本而不是Spree。直接对此代码进行更改并运行它而不是常规的Spree。这是非常不受欢迎的,因为它使Spree版本升级非常复杂和困难。

如果您计划使代码可重复使用,您还可以调查将其转换为内部或已发布的扩展程序。请参阅关于该方法的Spree文档。