Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails + Ransack - Drop Down List Collection?

I am loving the ransack gem for its flexibility, however I am unable to get the standard collection_select to function properly. Perhaps someone can assist.

Example:

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

in this case, this code is from an expense entry screen, so the first parameter is the expense object. What should it be in the ransack form? Also, I know I need to get the suffix in there. In this example, I would like project_id_eq to be the search pattern.

Also, my form is on a controller and view called "reports", I am not putting this search in the default controllers.

Thanks!

like image 648
Atari2600 Avatar asked Dec 19 '12 18:12

Atari2600


2 Answers

Seems that this will work.

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

If anyone has another suggestion, would love to know it too.

like image 97
Atari2600 Avatar answered Oct 23 '22 04:10

Atari2600


To do this with an include_blank, put it outside of the parentheses:

ex:

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

== UPDATE ==

better yet, use f.collection_select. This way after the user searches for something using the drop down, that option is preselected on the following page:

<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %>
like image 24
bigpotato Avatar answered Oct 23 '22 06:10

bigpotato