【发布时间】:2012-01-05 10:46:29
【问题描述】:
我想创建如下所示的哈希:
{nil => "Cat", 0 => "Dog", 1 => "1", ... 16 => "16"}
这就是我的做法:
hash = { nil => "Cat",0 => "Dog" }
(1..16).to_a.each { |e| hash[e] = e.to_s }
而且这看起来很丑。有没有更好的方法来实现这一点(在 1.8.7 版中)?
谢谢
【问题讨论】:
-
只是出于好奇:为什么要使用
nil作为键?特别是因为哈希的其余部分在我看来很像一个数组。 -
@polarblau - 我将此哈希用于模型属性的选择框选项,因此当用户未选择任何内容时,它将在 DB 中保留
nil。 -
我不明白这个问题。可以请你清除它吗?你需要什么作为输出?
-
@Shamithc 我正在寻找一种可以以更性感的方式执行此操作的方法 :) 我的代码看起来很糟糕,我知道这有什么用,但没想到。
-
您是否使用 Rails 的表单助手进行选择?如果是这样,您可以为选项提供
prompt或include_blank参数。两者都允许您指定一个字符串以进行自定义(在您的示例中为“Cat”)。此处解释了两者之间的区别:apidock.com/rails/ActionView/Helpers/FormOptionsHelper/… — 鉴于我了解您的问题,这对我来说似乎最性感,因为您已经在使用 Rails。
标签: ruby-on-rails ruby