2017-08-07 11 views
2

私はsimple_form gemを使ってチェックボックスをレンダリングしています。ここに私のコードだ:Rails - 配列の代わりにドロップダウンリストにアソシエーションのチェックボックスを表示する

<tr> 
    <th>Authors</th> 
    <td><%= f.association :authors, as: :check_boxes, label: false %></td> 
</tr> 

問題は私のコレクションは、このような配列にまで表示されていることである。 terrible for UX!!

私は、チェックボックスのこの配列ではなく、ドロップダウン形式であることを得るにはどうすればよいですか?

+0

ドキュメントから、ブロックを 'f.association'(https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/form_builder.rb#L181)に渡すことができます。 check_box、ラベル、そして '
'でブロックします。より複雑なもの(3列の均等に分散されたチェックボックス+ラベルのようなもの)が必要な場合は、その可能性のある作成者を手動でループする必要があります。 – MrYoshiji

答えて

0

collection_selectを試しましたか?

は次のようになります。

<%= collection_select(:author, :name, Author.all, :id, :name_with_initial, prompt: true) %> 

が 乾杯

1

、それが役に立てば幸い解決策を見つけました!私はthis blog postを発見し、コードで使用したitem_wrapper_tag:ヘルパーを使用しました。これにより一連のチェックボックスの周りにdivを置くことができました。それから私はそれにクラスを与えたので、CSSを使ってこのdivのスタイルをinline-blockとすることができました。

<tr> 
    <th>Authors</th> 
    <td><%= f.association :authors, as: :check_boxes, item_wrapper_tag: :div, item_wrapper_class: "inline_block", label: false %></td> 
</tr> 

この結果が得られました。コンテンツは配列の代わりに垂直リストになりました。

enter image description here

私は、スクロール可能なボックスの中に、それを含むようにCSSでもう少し周りを突くする必要がありますが、全体的に、このソリューションは、私のために働きました。

関連する問題