2017-11-27 5 views
-2

Railsにドロップダウンを作成する方法はたくさんあります。なぜそれほど多くのものがあり、どちらが慣用的であるのかは明らかではありません。Rails 5でドロップダウンを生成するにはどうすればよいのですか?

私はRails 5xと組み込みフォームヘルパーを使用しています。

<%= form_for(@my_model, :url => some_url(@my_model)) do |f| %> 
    <%= f. # ?? f.select ?? f.collection_select ?? or anything else? 

慣用的で推奨される方法は何ですか?

私はsimple_formのような外部の宝石を使いたくないことに注意してください。

+2

このドロップダウンリストのオプションリストはどこに保存されますか? – AntonTkachov

答えて

0

collection_selectは、項目のリストがActiveRecordオブジェクトの配列である場合に使用されます。 collection_selectselectの上に構築されているので、文字列の配列ではなくオブジェクトのコレクションを表示する必要があるときに便利な方法です。

詳しい回答はhereを参照してください。

0

選択 - 基本的な使い方です。 たとえば、この場合には手動で値を追加する必要があります。

<%= f.select(:name, :some_id, [['Emma', 1], ['Oliver', 2]) %> 

しかし、あなたはこの値のデータでモデルを持っている場合、あなたはcollection_selectを使用することができます。

<%= collection_select(:something, :id, User.all, :some_id, :name) %> 

更新

コメントの例:

<%= options_for_select(
    [ 
    ['Emma', 1, { 'data-attr' => '200ms' }], 
    ['Oliver', 2, { 'data-attr' => '400ms' }] 
    ], 2 # selected options id 
) %> 

HTML結果:

<option value="1" data-attr="200ms">Emma</option> 
<option value="2" selected="selected" data-attr="400ms">Oliver</option> 
+0

'options_for_select'には何がありますか? – Joddy

+0

@ Joddy任意の属性を追加し、オプションとして「選択済み」を設定することができます。もう一度答えをチェックすると、私は例を追加しました。 –

関連する問題