Итак, я пытаюсь запустить генератор из контроллера, идея в том, что я могу создать скаффолд из приложения rails
для целей тестирования, я создал небольшой генератор, который создает инициализатор безреальный контент.я запустил это изнутри оболочки (rails generate initializer)
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
, так что это приноситответ «неопределенный метод« поведение », тогда я провел некоторое исследование, зная, что генераторы рельсов основаны на Торе, и обнаружил, что метод поведения является методом Тор в модулях Thor :: Actions http://rubydoc.info/github/wycats/thor/master/Thor/Actions:behavior
Итак, я изменил код контроллера, чтобы включить этот модуль:
class GeneratorController < ApplicationController
include Rails::Generators
include Rails::Generators::Actions
include Thor::Actions
def index
generate(:initializer)
end
end
Теперь ошибка - «неверное количество аргументов (3 для 0)».Я очень смущен тем, что может пойти не так.