Подтвердить что ты не робот

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.

4b9b3361

Ответ 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"})