将数组作为参数传递 - ruby

时间:2014-06-18 20:42:49

标签: ruby-on-rails ruby arrays

这是在区域控制器文件

def create
    postal_code_list = params[:region].delete(:postal_code_list)
    @region = Region.new(params[:region])
    authorize! :create, @region
    assign_postal_codes(postal_code_list)

这是在种子文件

region = Region.create({
     name: "region1",
     postal_code_list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})

我正在尝试为测试中的Web应用创建一些默认值。我对ruby特别陌生,所以这就是这个基本问题的原因。 当我在调试模式下运行时,页面显示名称:region1,但邮政编码不会显示。我不确定如何将postal_code_list数组传递给控制器​​文件。我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果要为具有种子的区域创建种子,请执行以下步骤:

in seeds.rb

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].each do |rc| 
  Region.create(name: "region#{rc}", postal_code_list: rc}
end

然后在命令行中:

rake db:seed

这将创建10个名为“region1”,“region2”......和postal_code_list的区域:1,2 ...

您的控制器正在进行操作,因为Region.create正在执行查询,而不是请求。