[英]Where should I put my own classes that are not models/views/controllers?
[英]Should I copy/paste all controllers and routes from Spree to my own app?
我正在学习RoR,显然Spree和我不清楚。 我也不完全熟悉Rails引擎。
我的问题是我应该从Spree github页面复制所有控制器和路由,然后覆盖它们,还是它们已经通过引擎“启动”了?
另外,我注意到有些人使用Deface在自己的应用程序上覆盖内容。 从github代码复制/粘贴然后修改它难道不是很容易吗?
谢谢
gem的整体思想是它们是包分发机制,您可以使用它来代替粘贴代码。
大多数现代语言都有某种程序包分发。 Ruby的首选包管理器是Bundler 。
应该始终使用它而不是粘贴粘贴,因为:
如果出于任何原因需要修改gem,则可以派生存储库并告诉捆绑程序使用您的派生。 但是在大多数情况下,这是不得已的方法,因为Ruby是一种非常灵活的语言。
我的问题是我应该从Spree github页面复制所有控制器和路由,然后覆盖它们,还是它们已经通过引擎“启动”了?
不,只要装上宝石。 它极有可能是可配置的,并提供了一些选项,可以根据您的意愿对其进行自定义,而无需更改任何gems代码。
或者在许多情况下,您可以仅使用面向对象的程序来配置gem所提供的控制器的子类型。
Deface用于在渲染视图后对其进行修改。 它基本上是使用正则表达式的一种更完善的版本,因此,如果可以首先通过使用partials或helpers来使代码更具模块化,则可以解决问题,因此相当麻烦。 它与路由或控制器无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.