gpt4 book ai didi

ruby-on-rails - 如何更改自定义 Rails 生成器的源代码? (雷神)

转载 作者:行者123 更新时间:2023-12-04 07:29:23 26 4
gpt4 key购买 nike

我正在制作一个生成新 Rails 应用程序的自定义生成器,我是这样做的

require 'thor'
require 'rails/generators/rails/app/app_generator'

class AppBuilder < Rails::AppBuilder
include Thor::Actions
include Thor::Shell
...
end

问题是,我如何添加一个新的源目录(然后由 Thor::Actions#copy_fileThor::Actions#template 和其他)?我在 Thor 的文档中看到 Thor::Actions#source_paths 包含源(它是一个路径数组),所以我尝试在我的类中覆盖它(因为我已经包含了 Thor: : Action ):

def source_paths
[File.join(File.expand_path(File.dirname(__FILE__)), "templates")] + super
end

有了这个,我想在源代码中添加 ./templates 目录,同时仍然保留 Rails 的目录(这就是为什么 + super 在末尾)。但它不起作用,它仍然将 Rails 的源路径列为唯一路径。

我尝试浏览 Rails 的源代码,但我找不到 Rails 如何将 his 目录放在源路径中。我真的很想知道 :)

最佳答案

这有效:

require 'thor'
require 'rails/generators/rails/app/app_generator'

module Thor::Actions
def source_paths
[MY_TEMPLATES]
end
end

class AppBuilder < Rails::AppBuilder
...
end

我不明白为什么,但我已经在这上面花了太多时间,所以我不在乎。

关于ruby-on-rails - 如何更改自定义 Rails 生成器的源代码? (雷神),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com