2014-12-16 6 views
3

Как добавить пустую строку в качестве опции выбора в %w(Mr Ms Mrs Miss)?Ruby% w пустое значение

Я могу сделать ['', 'Mr', 'Ms', 'Mrs', 'Miss'], но я хотел бы использовать %w. Спасибо!

+2

Вы можете передать 'include_blank: true' в' select' [форма помощника] (http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html) – Stefan

ответ

8

Использование unshift это предваряется объект на фронт:

=> %w(Mr Ms Mrs Miss).unshift "" 
#> ["", "Mr", "Ms", "Mrs", "Miss"] 

Довольно версия без скобок.

Ok для обновления:

=> %W(#{} Mr Ms Mrs Miss) 
#> ["", "Mr", "Ms", "Mrs", "Miss"] 

объяснить:

  • %W - позволяют интерполяции
  • %w - не позволяют интерполяции
  • #{} - пустая строка
+0

Да! подумал о% W, но не использовал # :) Я отвечу через минуту! –

+1

'% W' включает в себя не только интерполяцию, но и escape-последовательности, такие как' \ n', которые иначе экранируются '% w'. Интересно, что эти литералы по-прежнему удивляют меня порой o_o –

+0

@ D-side хорошая точка. Thanx. –

1

Попробуйте это:

%w(Mr Ms Mrs Miss).unshift('') 
["", "Mr", "Ms", "Mrs", "Miss"] 
+0

THX человек! upvote для скорости и правильности! –

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