0

我想知道是否可以在rails中做多维数组?

我想得到类似制定一些数据的东西:

apple => 'tasty', 'red', 'round'
cereal => 'milk', 'breakfast'
name => 'tags'

我试图获取右侧是标签的名称-值对,因此当我调用名称时,我可以获得标签。

编辑:

我目前有这个

@array = ['apple', 'cereal', 'name']

但想为这些添加标签

@array = ['apple'=>['tasty', 'red', 'round'], 'cereal' => ['milk', 'breakfast'], 'name' => ['tags']]

我想做这样的事情,所以当我循环输出名称和相关标签时。

4

3 回答 3

1

就像戴夫牛顿在上面的问题评论中所说的那样,它被称为哈希,它用于诸如key => value. Hash 可以使用 Array 作为值,Array 可以使用 Hash 作为值。

{apple: ['tasty', 'red', 'round'], cereal: ['milk', 'breakfast'], name: ['tags']}

于 2013-04-14T02:00:29.333 回答
0

你听说过 YAML 吗?您可以将 YAML 格式的数据放入文件中,将其读入,它会自动为您创建哈希和数组:

apple:
   - tasty
   - red
   - round
cereal:
   - milk
   - breakfast
name: tags

然后在红宝石中:需要'yaml'

file=YAML.load_file(filename)
file.each_pair do |key, value|
   ...etc
于 2013-04-14T05:11:05.883 回答
0

你想要的叫做Hash,它的元素是键值对。键应该是stringsymbol;值可以是任何对象。

在您的特定情况下,apple是关键,['tasty', 'red', 'round']也是价值。

查看此链接以了解有关 Ruby 中的 Hash 的更多信息。

于 2013-04-14T04:53:27.627 回答