【问题标题】:How to override a rails 3 template within a gem如何在 gem 中覆盖 rails 3 模板
【发布时间】:2010-09-27 21:23:23
【问题描述】:

我有一个 Rails 3 项目,我在其中覆盖了一些脚手架模板。这是通过在 lib/templates/erb/scaffold 中放置一个新模板并将 lib 添加到 config/application.rb 中的我的自动加载路径来完成的(请参阅 Rasilscasts #216)。

现在,我想将我的工作打包到一个 gem 中。 (我是宝石新手……)

我不知道如何在 gem 中实现这一点。

查看 generators.rb 我看到有一个模板目录的配置:

  templates_path.concat config.templates
  templates_path.uniq!

但我不知道如何使用它。

我不认为我应该弄乱 gem 中的 lib 目录(或者即使我可以这样做)。

所以我的问题是,我如何从 gem 中实现这一点?

提前致谢

杰夫

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    不是将lib 添加到您的autoload_path 而是添加您的gem 的lib 目录(尽管我认为这应该自动发生)。不过,如果您提供一些代码摘录,我可能会给出更具体的建议

    【讨论】:

    • 好的,我会(明天),但是(1)gem 如何修改自动加载路径和(2)gem 的 lib 目录可以在任何地方?我应该使用一个常量吗?
    • 实际上我认为它在我的 gemspec 的 require_paths 命令的自动加载路径中。我已经验证过了。但这似乎不是模板的加载方式。
    • 这是因为自动加载/需要路径用于 ruby​​ 文件,而不是模板。您应该使用另一个变量(例如 view_paths 或其他东西)。
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 2012-12-13
    • 2014-02-06
    • 1970-01-01
    • 2018-06-02
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多