如何将数组传递给rails生成器的类选项?

时间:2014-05-28 21:11:09

标签: ruby-on-rails-4 generator ruby-2.0 thor

我正在创建以下ruby类生成器:

class Template < Rails::Generators::Base
  source_root File.expand_path('../templates', __FILE__)

  argument :name, type: 'string', required: true
  ...
  class_option :templates, type: 'array', default: [1, 2, 3, 4], aliases: '-t'

  private
  ...

end

在rails控制台中,我尝试了:

rails generate template test -t=1 2 
rails generate template test -t 1 2 
rails generate template test -t 1,2
rails generate template test -t=1,2  
rails generate template test -t=[1,2]
rails generate template test -t [1,2]

但生成器无法正常工作。似乎输入不返回数组,因为以下私有方法不起作用:

def should_be_template_rendered(param)
  options.templates.include? param
end

param只是一个数字。结果是根本没有渲染任何模板。我检查了Thor文档herehere,但无法找到有关如何将数组作为参数传递的示例。

1 个答案:

答案 0 :(得分:3)

以下工作对我来说很好

rails generate template test -t=1 2 
rails generate template test -t 1 2 

请注意,结果是字符串数组

options["templates"]
#=> ["1", "2"]