есть
.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)
Комментариев нет:
Отправить комментарий