選択ボックスを含む作業フォーム(モデルにバインドされていないため、を使用form_tag
)があります。
関連するコードは次のとおりです。
select_tag 'language', "<option value='ar' selected>Arabic</option>
<option value='bg'>Bulgarian</option><option value='ca'>Catalan</option>
<option value='zh-CHS'>Chinese (Simplified)</option>
<option value='zh-CHT'>Chinese (Traditional)</option>
...
<option value='tr'>Turkish</option><option value='uk'>Ukrainian</option>
<option value='vi'>Vietnamese</option>".html_safe
お気づきのとおり、アラビア語がデフォルトのオプションで、リストには約 35 の言語があります。
ユーザーが言語を選択すると、(フォームが送信されたときに GET を介して) 値を個別に保存しますが、次回フォームに遭遇したときに、ユーザーが選択した言語をフォームが自動的に選択するようにしたいと思います。言い換えると:
- 「デフォルト」オプションはアラビア語です。
- ユーザーは言語としてフランス語を選択します。
- 次にフォームに遭遇したとき (たとえば、関連するページに戻ったとき)、アラビア語ではなくフランス語が選択されます。
これを達成するために私が考えた 1 つの方法はcase...when
、属性が関連するオプションに追加される呼び出しselected
によるものでしたが、リストに 35 以上の言語があるため、これは少し面倒になる可能性があり、より良い/より整然とした方法。
何か案は?私はoptions_for_select
解決策だと思っていますが、これが上記のコードにどのように組み込まれるかわかりませんか?