问题描述
我正在为应用程序调整一些脚手架模板,所以我主要只想复制内置/默认模板。我的问题是我可以遵循什么过程来定位模板?
例如,感谢 Tim Krins 的有用回答,我现在知道可以查看:
-
cd $(bundle show railties)/lib/rails/generators/rails/scaffold_controller/templates/
用于控制器模板 (reference) -
cd $(bundle show activerecord)/lib/rails/generators/active_record/model/templates/
用于模型模板 (reference)
我还设法将他的 bundle show <gem>
技巧与通过 haml-rails 中的 Github 问题进行探索结合起来,找出 HAML 模板的路径是:
cd $(bundle show haml-rails)/lib/generators/haml/scaffold/templates
我还没有能够使用这些知识来找出通用的解决方案,所以下次我必须再次搜索 StackOverflow。
我将如何自行确定各种测试文件的模板位置(而不告诉您我使用的是哪个测试框架)?我如何找到用于 invoke resource_route
步骤的模板?
- 如何确定要查看的宝石? (例如,我怎么知道上面的 railties 与 activerecord ?)
- 如何确定要查看的路径? (例如,我怎么知道要查看 activerecord/.../activerecord 而不是 railties/.../rails?)
解决方法
你想改变哪个宝石?
在 Devise 或 Spree gems 的情况下需要的是在 app
目录中重新创建文件路径,然后从 gem 的 github 存储库中复制/克隆 erb/haml 文件,并在本地文件。
有一个名为 Deface 的 gem,它可以让您在视图中编辑特定的 html 组件,而无需重新创建整个视图。这是一个更复杂但最终更易于维护的路径 - 取决于您的更改范围。