Rails collection_select параметр по умолчанию?
поэтому я собираю коллекцию.
<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name %>
Я пытаюсь получить значение по умолчанию для параметра PriceRange с идентификатором 7, это независимо и не зависит от каких-либо параметров пользователя, его части формы, которая изменяет элементы, отображаемые на странице, их ценовой диапазон.
* * * UPDATED EFFORTS * * *
Я добавил
@price_higher = PriceRange.find(7)
для контроллера, который обрабатывает представление, и добавил
, {:selected => @price_higher.value}
внутри коллекции_выбрать. Кажется, это трюк, хотя он искал более сложный способ сделать все это внутри коллекции_select.
Ответы
Ответ 1
Добавьте параметр :selected
.
Пример:
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => "whatever_value"})
Пример взяли из: ApiDock
В вашем случае:
<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name, {:selected => "whatever"} %>
Ответ 2
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})
Это гарантирует, что значения всегда поступают из БД, из которой извлекаются данные, и могут изменяться при изменении БД.
Ответ 3
Если вы хотите выбрать значение по умолчанию из базы данных, используйте:
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})
Если вы хотите предложить сообщение, используйте:
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:prompt => "Select Post"})