【问题标题】:passing array as a parameter - ruby将数组作为参数传递 - ruby
【发布时间】:2014-06-18 20:42:48
【问题描述】:

这是在区域控制器文件中

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 数组传递到控制器文件中。我错过了什么?

【问题讨论】:

  • 种子和控制器完全没有关系。种子在数据库中使用以下命令创建区域条目:rake db:seed。
  • 您的数据库架构是什么样的?您使用的是 Postgres 数组还是序列化列?

标签: ruby-on-rails ruby arrays


【解决方案1】:

如果您想为带有种子的区域创建种子,请运行以下步骤:

在种子.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 执行的是查询,而不是请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-07
    • 2014-01-12
    • 2011-08-12
    • 2016-09-26
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多