Skip to content

Instantly share code, notes, and snippets.

@viola
Created July 7, 2011 20:00
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save viola/1070410 to your computer and use it in GitHub Desktop.
Save viola/1070410 to your computer and use it in GitHub Desktop.
Example of fetching Hash (key,value) to the simple_form collection.
-- model
some sort of constant hash:
HASH_NAME = {
0 => "Choose:",
1 => "On-Campus Recruiting - CSO",·
2 => "CSO Staff Referral",
3 => "Faculty Contact",·
4 => "Career Day",·
5 => "CSO Summer Job Listing",·
6 => "Alumni Contact",·
7 => "Personal Contact",·
8 => "Other"·
}
-- view
<%= f.input :some_field, :collection => Model::HASH_NAME.sort.map {|k,v| [v,k]} %>
This would output nice select with select-value as hash key and select-name as hash value, such as:
<select id="form_application_job_source" class="select required" name="form_application[job_source]">
<option value="0">Choose:</option>
<option value="1">On-Campus Recruiting - CSO</option>
<option value="2">CSO Staff Referral</option>
<option value="3">Faculty Contact</option>
<option value="4">Career Day</option>
<option value="5">CSO Summer Job Listing</option>
<option value="6">Alumni Contact</option>
<option selected="selected" value="7">Personal Contact</option>
<option value="8">Other</option>
</select>
@jonathanroehm
Copy link

Amazingly helpful. Saved a ton of time. Thank you!

@araslanov-e
Copy link

f.input :some_field, :collection => Model::HASH_NAME, value_method: :first, label_method: :last

@mark-craig
Copy link

6 years later! Thank you so much!

@evanlouden
Copy link

Again. Thanks! Exactly what I needed today.

@shamca65
Copy link

shamca65 commented Dec 26, 2018

Thanks! - Helped me troubleshoot getting my MDB select working properly:
"


<%= options_for_select(Customer::PROVINCES.map {|k,v| [v,k]}) %>

"

@Augustin-Grenne
Copy link

Still a relevant and very useful thread, thanks all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment