【问题标题】:Update files created by generator in Rails application在 Rails 应用程序中更新生成器创建的文件
【发布时间】:2021-11-04 19:57:39
【问题描述】:

我有一个生成器,可以创建一些视图文件。

我想知道生成器的可扩展性 - 如果生成器模板文件发生变化,是否需要手动修改生成器创建的现有文件?

我知道我可以通过运行生成器命令来覆盖现有文件。但是如果我在文件生成后编辑了文件,覆盖可以删除一些必要的部分。

在现有文件中应用最新生成器模板的最佳方法是什么?

【问题讨论】:

  • 我会复制旧文件,运行生成器,然后比较差异。我认为生成器通常不会更新文件。如果创建者实现了该逻辑,也许某些特定的会这样做,但您需要在提供该生成器的 gem 的自述文件中验证这一点。
  • 通常会避免更新现有文件(除了在 oneliner 宏调用中折腾),因为它很容易出错并且留给用户。 Ruby 不是一种结构化语言,例如 Lisp,整个程序都可以作为数据进行操作。您应该考虑文件是否需要定期更新,那么它可能应该是 lib 的一部分而不是生成,是否可以通过从 lib 提供更好的 API 来解决。

标签: ruby-on-rails ruby generator


【解决方案1】:

运行生成器,然后使用 git 确定要保留生成视图的哪些更改部分。

您可以通过命令行使用git add -p 执行此操作,以便在提交之前暂存文件的某些部分(来自Git Tools - Interactive Staging)。

任何体面的 git GUI 也可以让您以这种方式进行更改。

【讨论】:

    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 2021-05-22
    • 2013-12-29
    • 2015-09-21
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    相关资源
    最近更新 更多