2016-07-04 2 views
0

У меня есть 2D-массив, который должен иметь имя и пул каждой школы в базе данных в виде пар. Я хочу запустить этот массив пустым, а затем добавить каждую школу по одному.(Ruby) Как вставить пару в массив

Это то, что я пробовал:

<% schoolSelect = [] %> 
<% @schools.each { |x| schoolSelect += [x.name, x.slug] } %> 

Однако, это добавляет имя и слизняк школы в массив в сессии, а не двумерным.

+0

Что находится внутри @schools и что вы хотите в выводе plz tell –

+0

Вы по-прежнему используете фрагмент кода вместо обычного кодового блока. Пожалуйста, прекратите использовать его, если у вас нет возможности для демонстрации. –

+0

Почему вы хотите это сделать? Мне кажется, что вы собираетесь использовать этот массив в 'select'? Если это так, могут быть лучшие решения, так как существуют довольно умные методы построения форм. – spickermann

ответ

3

Использование << вместо +=:

schoolSelect = [] 
@schools.each { |x| schoolSelect << [x.name, x.slug] } 

Или еще лучше использовать Ruby, идиомы map:

schoolSelect = @schools.map { |s| [s.name, s.slug] } 

Это работает, потому что map уже возвращает массив.

Смежные вопросы