1

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

提前致谢

4

1 回答 1

1

Bundler 将依赖的 gem 下载到一个缓存位置,但如果您想要更改代码,您不想弄乱它。当您更新宝石时,您在那里更改的任何内容都会丢失。

您需要熟悉标准的 Rails 自定义方法。按照干扰最小到最大的顺序:

  • 装饰器 - 宿主应用程序的应用程序文件夹结构(资产、控制器、模型、覆盖、视图等)中的文件,它们通过使用语法Spree::[whatever class].class_eval do然后使用标准 ruby​​ 方法定义(后跟end)更改 Spree 对象上的单个方法。这些文件与同一文件夹中的 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 对该文件的所有未来代码更改迁移到您的副本中,这就是不太理想的原因。
  • Fork the Spree 源 - 将您的 Gemfile 引用更改为您的版本而不是 Spree。直接对此代码进行更改并运行它而不是常规 Spree。这是非常不可取的,因为它使升级 Spree 版本非常复杂和困难。

如果您打算使代码可重用,您还可以研究将其变成内部或已发布的扩展。请参阅有关该方法的 Spree 文档。

于 2012-12-08T20:59:42.713 回答