select_tag и options_from_collection_for_select с предварительно выбранным значением - PullRequest
0 голосов
/ 15 мая 2018

Я использую select_tag и хочу иметь предварительно выбранное значение с "0" в качестве значения и "Все события" в качестве метки. Вот что я попробовал:

<%= select_tag "Filter Event", options_from_collection_for_select(Event.all, :id, :name), include_blank: 'All Events', class: "pull-right", id: 'filter_event' %>

Но визуализированный HTML выглядит так:

<select name="Filter Event" id="filter_event">
  <option value="">All Events</option>
  <option value="1">Event 1</option>
  <option value="2">Event 2</option>
</select> 

Обратите внимание, что значение для всех событий является пустой строкой. Мне нужно значение «0». Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 15 мая 2018

Не элегантно, но работает:

<%= select_tag "Filter Event", options_for_select( Event.all.collect {|e| [e.name, e.id]  }.unshift(["All Events", 0]) ), id: 'filter_event', style: "position: relative; left: 200px; top: 43px" %>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...