20

私はその柔軟性のためにransackgemが大好きですが、標準のcollection_selectを正しく機能させることができません。おそらく誰かが助けることができます。

例:

      <%= collection_select(:expense, :project_id, Project.all, 
        :id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %>

この場合、このコードは経費入力画面からのものであるため、最初のパラメーターは経費オブジェクトです。ランサックの形で何をすべきですか?また、そこに接尾辞を付ける必要があることもわかっています。この例では、project_id_eqを検索パターンにします。

また、私のフォームは「レポート」と呼ばれるコントローラーとビューにあり、この検索をデフォルトのコントローラーに入れていません。

ありがとう!

4

2 に答える 2

36

これはうまくいくようです。

<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %>

誰かが別の提案を持っているなら、それも知りたいです。

于 2012-12-19T19:45:23.293 に答える
23

include_blankを使用してこれを行うには、括弧の外に配置します。

元:

<%= f.select :languages_id_eq, options_from_collection_for_select(Language.all, "id", "name"), include_blank: true %>

==更新==

さらに良いことに、を使用してf.collection_selectください。このように、ユーザーがドロップダウンを使用して何かを検索した後、そのオプションは次のページで事前に選択されています。

<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %>
于 2014-02-05T20:15:23.913 に答える