繁体   English   中英

我应该复制/粘贴从Spree到我自己的应用程序的所有控制器和路由吗?

[英]Should I copy/paste all controllers and routes from Spree to my own app?

我正在学习RoR,显然Spree和我不清楚。 我也不完全熟悉Rails引擎。

我的问题是我应该从Spree github页面复制所有控制器和路由,然后覆盖它们,还是它们已经通过引擎“启动”了?

另外,我注意到有些人使用Deface在自己的应用程序上覆盖内容。 从github代码复制/粘贴然后修改它难道不是很容易吗?

谢谢

gem的整体思想是它们是包分发机制,您可以使用它来代替粘贴代码。

大多数现代语言都有某种程序包分发。 Ruby的首选包管理器是Bundler

应该始终使用它而不是粘贴粘贴,因为:

  1. 粘贴粘贴容易出错且乏味。
  2. 您并不会因为供应商代码而使您的代码库肿,这使得维护起来更容易。
  3. 程序包管理器可以执行依赖关系树解析,以确保您的依赖关系彼此兼容。
  4. 不是1995年,复制粘贴到图书馆将使您的能力受到怀疑。

如果出于任何原因需要修改gem,则可以派生存储库并告诉捆绑程序使用您的派生。 但是在大多数情况下,这是不得已的方法,因为Ruby是一种非常灵活的语言。

我的问题是我应该从Spree github页面复制所有控制器和路由,然后覆盖它们,还是它们已经通过引擎“启动”了?

不,只要装上宝石。 它极有可能是可配置的,并提供了一些选项,可以根据您的意愿对其进行自定义,而无需更改任何gems代码。

或者在许多情况下,您可以仅使用面向对象的程序来配置gem所提供的控制器的子类型。

Deface用于在渲染视图后对其进行修改。 它基本上是使用正则表达式的一种更完善的版本,因此,如果可以首先通过使用partials或helpers来使代码更具模块化,则可以解决问题,因此相当麻烦。 它与路由或控制器无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM