Страницы

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

пятница, 21 июня 2019 г.

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

есть
.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})")
Что бы получилось как то так


Ответ

В классе, откуда вы извлекаете данные 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)

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

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