[解決済み] ruby on rails f.select オプションとカスタム属性
2022-08-02 06:33:54
質問
フォームに以下のようなselect文があります。
= f.select :country_id, @countries.map{ |c| [c.name, c.id] }
その結果、このようなコードになります。
...
<option value="1">Andorra</option>
<option value="2">Argentina</option>
...
しかし、オプションにカスタムHTML属性を追加したいのですが、こんな感じです。
...
<option value="1" currency_code="XXX">Andorra</option>
<option value="2" currency_code="YYY">Argentina</option>
...
どのように解決するのですか?
Railsは、既存のoptions_for_selectヘルパーを使用して、選択オプションにカスタム属性を追加することができます。ご質問のコードでは、ほぼ正しく書かれていました。html5のdata-attributesを使用しています。
<%= f.select :country_id, options_for_select(
@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] }) %>
初期選択範囲を追加する。
<%= f.select :country_id, options_for_select(
@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] },
selected_key = f.object.country_id) %>
グループ化されたオプションが必要な場合は、次のように grouped_options_for_select ヘルパーを使用します (@continents が大陸オブジェクトの配列で、それぞれが countries メソッドを持っている場合)。
<%= f.select :country_id, grouped_options_for_select(
@continents.map{ |group| [group.name, group.countries.
map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] } ] },
selected_key = f.object.country_id) %>
ドキュメントではなく、railsのソースを読んでこれを見つけたことを投稿したpaul @ pogodanに謝意を表するべきです。 https://web.archive.org/web/20130128223827/http://www.pogodan.com/blog/2011/02/24/custom-html-attributes-in-options-for-select
関連
-
[解決済み] Railsサーバーがポートはすでに使用されていると言う、そのプロセスを殺すにはどうすればよいですか?
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] Ruby on Railsのデータベースをパージまたは再作成する
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] デバイスを使用する現在のユーザーメソッド
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] rails consoleを起動するとRailsのイニシャライザーが呼ばれる?
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?