Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby通过数组索引获取值_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Ruby通过数组索引获取值

Ruby on rails Ruby通过数组索引获取值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习RubyonRails,我来自PHP的背景 我有一个像这样的数组 TYPES = [ 'Casual' => 'casual', 'Full-Time' => 'full_time', 'Part-Time' => 'part_time', ] 我想得到indexCasual的值,这就是我要得到它的方法 work_type = TYPES.first['Casual'] 虽然它工作得非常好,我能够得到值,但我想知道这是否是正确的方法,是否应该使用map

我正在学习RubyonRails,我来自PHP的背景

我有一个像这样的数组

TYPES = [
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
]
我想得到index
Casual
的值,这就是我要得到它的方法

work_type = TYPES.first['Casual']

虽然它工作得非常好,我能够得到值,但我想知道这是否是正确的方法,是否应该使用
map

这实际上是
散列的
数组

TYPES = [{
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
}]
work_types = TYPES.map { |type| type['Casual'] }
#=> ["casual", "something else"]
是的,如果
数组中只有一个哈希值,则可以先使用

但是如果您有两个以上的
Hash
,并且希望收集
Casual
的所有值,请使用
map

work_types = TYPES.map { |type| type['Casual'] }
#=> ["casual", "something else"]
编辑


如果你有一个散列,那么我建议你使用@sergio的答案

不,这不是正确的方法,不,你不应该使用map。相反,您应该忘记PHP称之为“关联数组”的可怕的憎恶

Ruby有适当的字典/哈希映射,您希望在此处使用它们:

TYPES = {
  'Casual' => 'casual',
  'Full-Time' => 'full_time',
  'Part-Time' => 'part_time',
}

TYPES['Casual'] # => 'casual'

是的,我一开始试过这个,这给了我一个TypeError错误:没有将字符串隐式转换为Integer@Saadia:请注意不同的括号您不能有这样的数组。这是无效的。@SergioTulentsev你是对的。@SergioTulentsev是PHP中OP描述正确的哈希文字吗?如果是的话,应该用PHP编写文本。否则,背景并不重要。@SergioTulentsev那么这个问题真的没有意义。我仍然可以编辑以使其有意义。让我们一起来。