Rails Generators - множественные аргументы массива в генераторе, возвращающие «Не указано значение для требуемых аргументов» - PullRequest
2 голосов
/ 25 мая 2011

я написал этот генератор, чтобы принимать несколько массивов аргументов

class TestScaffoldGenerator < Rails::Generators::NamedBase

  #template source
  source_root File.expand_path("../templates", __FILE__)

  #scaffold_name argument
  argument :fields, :type => :array, :required => true, :desc => "required"
  argument :validations, :type => :array, :required => true, :desc => "required"
  argument :displays_back, :type => :array, :required => true, :desc => "required"
  argument :displays_front, :type => :array, :required => true, :desc => "required"


  #gem_dependancies
  gem("haml")

  #initial generator method
  def generate_test_scaffold
    template "model.rb.erb", "app/models/#{file_name}.rb"
  end

  #private methods do get run when generator is initiated
  private

    #scaffold_name to underscore gives filename
    def file_name
      class_name.demodelize
    end

end

Когда я запускаю 'rails g test_scaffold', я не знаю, как обозначить конец массива аргумента и начало другого ... iveпробовал и многое другое:

'rails g test_scaffold name:string string black white'
'rails g test_scaffold name:string, string, black, white'
'rails g test_scaffold [name:string] [string] [black] [white]'
'rails g test_scaffold [name:string], [string], [black], [white]'
'rails g test_scaffold {name:string} {string} {black} {white}'
'rails g test_scaffold {name:string}, {string}, {black}, {white}'

Но я всегда получаю сообщение об ошибке "Не указано значение для обязательных аргументов" поля "," проверки "," display_back "," display_front ""

imдействительно не уверен, как обозначить массив ... какие-либо предложения?

1 Ответ

1 голос
/ 01 сентября 2014

Запустите, чтобы увидеть справку

rails generate test_scaffold

Вы можете передать параметр массива следующим образом

rails generate test_scaffold User --fields name age

Пользователь - это имя каркаса, и поля можно выбрать какэто

options["fields"]
#=> ["name", "age"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...