0

通貨のリストを含む選択ドロップダウン ボックスがあります。ユーザーにとって簡単にするために、ユーザーの国に基づいてページが読み込まれるときにドロップダウンで選択されているデフォルトの値を変更したいと思います (そのためにgeoip gem を使用します)。したがって、この Ruby コードを記述します。

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

$country の値に基づいて、ドロップダウン リスト ボックスの選択された値を変更する方法は? Javascriptでそれを行う必要がありますか?またはレールフォームヘルパーで?? そして、そのコードは何ですか?

4

3 に答える 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>
于 2013-10-06T20:49:25.473 に答える
1

$country 変数が Country テーブルに一致する国コードを持っていると仮定すると、次のようなことができます。

select_tag "currency", options_from_collection_for_select(Country.all, "country_code", "currency_name", $country)
于 2013-10-06T20:50:28.407 に答える
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>

ここでの Selected の使用に注意してください。

于 2013-10-06T20:51:39.113 に答える