【问题标题】:What is the process for locating any given gem's built-in scaffolding templates?定位任何给定 gem 的内置脚手架模板的过程是什么?
【发布时间】:2021-01-05 05:24:48
【问题描述】:

我正在为一个应用调整一些脚手架模板,所以我主要只是想复制内置/默认模板。我的问题是我可以按照什么流程来查找模板?

例如,感谢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 步骤的模板?

  1. 如何确定要查看的宝石? (例如,我怎么知道上面的 railties 和 activerecord 的区别?)
  2. 如何确定要查看的路径? (例如,我怎么知道要查看 activerecord/.../activerecord 而不是 railties/.../rails?)

【问题讨论】:

    标签: ruby-on-rails ruby metaprogramming scaffolding


    【解决方案1】:

    你想改变哪个宝石?

    对于 Devise 或 Spree gems,需要在 app 目录中重新创建文件路径,然后从 gem 的 github 存储库复制/克隆 erb/haml 文件,并在本地文件中进行更改.

    有一个名为 Deface 的 gem,它可以让您在视图中编辑特定的 html 组件,而无需重新创建整个视图。这是一条更复杂但最终更易于维护的路径 - 取决于您的更改程度。

    【讨论】:

    • 感谢您的回答,但我特别不是在寻找“如何获取 gem XYZ 的模板?”的答案......我想学习如何为自己钓鱼和图出 A)如何定位任何 gem 的模板和 B)如何找出正确的本地模板路径以将它们放入。感谢 Deface 的链接,我会看看它是否可以引导我走向正确的方向跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多