【发布时间】:2012-04-10 09:57:32
【问题描述】:
我正在制作一个自定义生成器来生成一个新的 rails 应用程序,我就是这样做的
require 'thor'
require 'rails/generators/rails/app/app_generator'
class AppBuilder < Rails::AppBuilder
include Thor::Actions
include Thor::Shell
...
end
问题是,如何添加新的源目录(然后由Thor::Actions#copy_file、Thor::Actions#template 和其他人使用)?我在 Thor 的文档中看到 Thor::Actions#source_paths 包含源(它是一个路径数组),所以我尝试在我的类中覆盖它(因为我已经包含了 Thor::Actions):
def source_paths
[File.join(File.expand_path(File.dirname(__FILE__)), "templates")] + super
end
有了这个,我想在源代码中添加./templates 目录,同时仍然保留Rails 的目录(这就是+ super 在末尾的原因)。但它不起作用,它仍然将 Rails 的源路径列为唯一路径。
我尝试浏览 Rails 的源代码,但找不到 Rails 如何将 他的 目录放在源路径中。我真的很想知道:)
【问题讨论】:
标签: ruby-on-rails generator thor