У меня есть выпадающий список, где я генерирую опции из записей базы данных, затем добавляю опцию в начало, например:
@select = Service.find_services_by_id(id).collect { |p| [p.name, p.id] }
@select.unshift( [ "Choose a service", 0] )
Тогда в представлении HAML у меня есть:
=select_tag "service_id", options_for_select(@select)
Но я смотрю на рефакторинг, который либо:
1) Добавление в модель другого метода, который также выполняет операцию unshift, чтобы вернуть мне все данные для выбора одним куском
2) Перемещение всего определения @select в помощник вида и вызов его из вида
3) Просто введите первую строку @select в контроллере, а затем помощник вида выполните часть unshift
Но мне трудно понять, в чем смысл. Мысли