Как изменить выделенный текст в раскрывающемся списке в приложении rails на основе переменной?

0

У меня есть раскрывающийся список со списком валют. Чтобы сделать его проще для пользователей, я хочу изменить выбранное по умолчанию значение в раскрывающемся списке, когда страница загружается на основе страны-пользователя (для этого будет использовать жемчужину geoip). Поэтому я буду писать этот рубиновый код:

$country = GeoIp.geolocation(request.remote_ip, :precision => :country)

Как изменить выбранное значение выпадающего списка на основе значения $ country? Должен ли я делать это с помощью Javascript? или с помощью рельсов? И для чего это код?

3 ответа

1
Лучший ответ

Все, что вам нужно сделать, это установить элемент <option> который имеет страну как selected='selected'. Как вы это делаете, это зависит от того, как вы создали список опций.

Например, options_for_select принимает выбранный элемент как 2-й аргумент.

options_for_select(['Alpha', 'Beta', 'Gamma'], 'Beta')
# => <option value="Alpha">Alpha</option>
# => <option value="Beta" selected="selected">Beta</option>
# => <option value="Gamma">Gamma</option>
1

Можете ли вы попробовать что-то вроде этого:

<%= f.select :someobj, options_for_select({ "Basic" => "$20", "Plus" => "$40" }, $country ) %>

Это даст вам:

<select name="someobj">
 <option value="$20">Basic</option>
 <option value="$40" selected="selected">Plus</option>
</select>

Обратите внимание на использование выбранного здесь.

1

Предполагая, что ваша переменная country $ имеет соответствующий код страны в вашей таблице Country, вы можете сделать что-то вроде этого.

select_tag "currency", options_from_collection_for_select(Country.all, "country_code", "currency_name", $country)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню