2014-10-13 3 views
0

Я довольно новичок в RoR и работает с хешами. Я пытаюсь получить ключи имени из хэша, чтобы я мог распечатать их на странице. Я продолжаю получать неопределенный метод для хэша. Я не уверен, что я делаю неправильно, и буду признателен за некоторые рекомендации.RoR получить ключевое имя от hash

Когда я запускаю это:

- position_names = @contest.positions.map(&:name) 
= position_names 

я получаю это:

undefined method 'name' for {"name"=>"P", num=>"3", "ep"=>["SP", "RP"]}:Hash 

Что я должен делать здесь и то, что было бы лучшим способом, чтобы получить имя ключи из хэша?

+0

Вам нужен массив ключей? – August

+0

Если вы посмотрите на http://pastebin.com/tKwMpD1B, вы увидите, что есть несколько ключей имени. Я хотел бы распечатать имя1 name2 name3 вместо того, что вы видите на pastebin. – localhost

ответ

0

если @ contest.positions возвращает хеш, то вы можете получить список этим: -

@contest.positions.keys 

Отредактировано:

Попробуйте сделать это: -

names = [] 
names = @contest.positions.map {|array| array["name"]} 

Это даст вам все имена и вы можете изменить способ, которым вы хотите использовать.

+0

@ contest.positions.name возвращает undefined метод 'name 'для # localhost

+0

и что возвращает @ contest.positions? –

+0

http://pastebin.com/tKwMpD1B – localhost