Страницы

Поиск по вопросам

суббота, 4 апреля 2020 г.

Возможности options_from_collection_for_select

#ruby_on_rails

                    
есть

.origin.select
  select#origin
    = options_from_collection_for_select(Airport.all, :id, :name)


HTML получается каким




Можно ли как то в options_from_collection_for_select для option задать отображение
не только по :name но и по нескольким полям типа так:

= options_from_collection_for_select(Airport.all, :id, ("#{:name} #{:city}(#{:country})")


Что бы получилось как то так



    


Ответы

Ответ 1



В классе, откуда вы извлекаете данные Airport следует реализовать метод, скажем full_name, который будет возвращать строку, эквивалентную той, которую вы хотите вызывать class Airport def full_name # Тут формируете нужный вам формат вывода "#{self.name} #{self.city}(#{self.country})" end end тогда вы можете вызвать этот новый метод, передав в третьем параметре символ с его именем .origin.select select#origin = options_from_collection_for_select(Airport .all, :id, :full_name)

Комментариев нет:

Отправить комментарий