I”m using Rails 4.2.3. I have a relation that returns certain columns …
MyObject.joins(:distance_unit)
.where(["user_id = ?", user.id])
.select("distance, distance_units.id, distance_units.abbrev")
This data is meant to be used in a select menu …
<%= select_tag "distance", options_from_collection_for_select(@distance_options, "distance", "distance") %>
However, what I want is for the id to be a concatenation of the “distance” and “distance_units.id” fields and the option name to be a concatenation of the “distance” and “distance_unit.abbrev” fields. How do I do that in Rails?
You can do it with options_for_select, like this:
<%= select_tag "distance", options_for_select(@distance_options.collect{|obj| ["#{obj.distance}_#{obj.id}", "#{obj.distance}_#{obj.abbrev}"]}) %>