所以我试图从控制器中运行生成器,我的想法是我可以从 Rails 应用程序中生成脚手架
出于测试目的,我创建了一个小型生成器,它创建了一个没有实际内容的初始化程序。我已经从 shell 中运行了它(rails 生成初始化程序)
lib/generators/initializer_generator.rb
class InitializerGenerator < Rails::Generators::Base
def create_initializer_file
create_file "config/initializers/initializer.rb", "# Add initialization content here"
end
end
但是当我尝试从控制器运行生成器时问题就来了
class GeneratorController < ApplicationController
include Rails::Generators
include Rails::Generators::Actions
def index
generate(:initializer)
end
end
所以这带来了响应'未定义的方法'行为'然后我做了一些研究,知道rails生成器是基于托尔的,发现行为方法是托尔::动作模块中的雷神方法 http://rubydoc.info/github /wycats/thor/master/Thor/Actions:行为
所以我更改了控制器代码以包含该模块:
class GeneratorController < ApplicationController
include Rails::Generators
include Rails::Generators::Actions
include Thor::Actions
def index
generate(:initializer)
end
end
现在错误是“参数数量错误(0 为 3)”。我现在对可能出了什么问题感到非常困惑。