如何将其他字段的 FoR select 选项名称和 ID 连接起来?

How do I make RoR select option name and id concatenations of other fields?

我正在使用 Rails 4.2.3。我有一个关系 returns 某些列 …

MyObject.joins(:distance_unit)
    .where(["user_id = ?", user.id])
    .select("distance, distance_units.id, distance_units.abbrev")

此数据用于 select 菜单……

<%= select_tag "distance", options_from_collection_for_select(@distance_options, "distance", "distance") %>

但是,我想要的是让 id 成为“距离”和“distance_units.id”字段的串联,选项名称成为“距离”和“[=20”的串联=]”字段。我如何在 Rails 中做到这一点?

  • 你可以用 options_for_select 来做,像这样:

    <%= select_tag "distance", options_for_select(@distance_options.collect{|obj| ["#{obj.distance}_#{obj.id}", "#{obj.distance}_#{obj.abbrev}"]}) %>