2014-10-21 1 views
0
form_for :radio, url(:radio, :add), :method => :put do |f| 
    = f.error_messages 
    %p 
     = f.label :title, :caption => "Radio Name:" 
     = f.text_field :title 
    %p 
     = f.select :city_name, XXXXXXXXXXXXXX 
    %p 
     = f.label :frequency 
     = f.text_field :frequency 
    %p 
     = f.label :url 
     = f.text_field :url 
    %p 
     = f.submit "Add", :class => 'button' 

Когда я поставил XXXXXXXX вHaml выпадающий выпуск меню с Rails

[['Hot','hot'],['Medium','medium'],['Cold','cold']] 

или даже

City.all.map {|c| [c.city]} 

я получаю:

can't convert Array into Hash 

Любая помощь будет оценена ,

ответ

0

Здесь Вы можете найти то, что решил для меня

= f.select :city_name, :options => [["Delhi", "Delhi"], ["Mumbai", "Mumbai"], ["New York", "New York"], ["Punjab", "Punjab"]] 

: Параметры => был ке y ... Но почему документы не упоминают об этом. Может быть, это из-за разницы в версии для драгоценных камней.

Спасибо всем за помощь.

0

Вам просто нужно обернуть опции в options_for_select. Например:

= f.select :city_name, options_for_select([['Hot','hot'],['Medium','medium'],['Cold','cold']]) 
+0

Нет difference..Still же результат .. :(не может преобразовать массив в Hash файла: abstract_form_builder.rb местоположение: линия обновления: 278 –

1

= f.select :city_name, City.all.map{ |c| [c.name, c.id] } попробовать этот

+0

не работает .. :( –

+0

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

+0

Некоторое, как обновление в Hash.rb дает некоторую проблему: - ["<значение опции = \" Дели \ "> Дели" , "<значение опции = \" Мумбаи \ "> Мумбаи", "<значение опции = \" Нью-Йорк \ "> Нью-Йорк", "<значение опции = \" Пенджаб \ "> Пенджаб"] ТипError - невозможно преобразовать массив в хэш: \t /Users/himanshu.virmani/.rvm/gems/ruby-1.9.3-p547/gems/padrino-helpers-0.12.2/lib/padrin o-helpers/form_builder/abstract_form_builder.rb: 279: in 'update ' –

0
data = %w/hot medium cold/.map { |s| [s.capitalize, s] } 
= f.select :city_name, Hash[data] 

Hash [данные]