我正在尝试选择不同的记录来填充选择标记,并且我需要查询中的 ID,但是当我编写这样的查询时:
Topic.select(:name).distinct
它返回的结果如下所示:
#<ActiveRecord::Relation [#<Topic id: nil, name: "Ruby">, #<Topic id: nil, name: "Python">, #<Topic id: nil, name: "tingz">, #<Topic id: nil, name: "Javascript">, #<Topic id: nil, name: "Java">]>
为了让我的选择下拉菜单正常工作,我还需要返回相应的 ID
这是我在 View 中使用的选择标签:
<%= select_tag :topic_search, options_from_collection_for_select(Topic.select(:name).distinct, :id, :name), placeholder: "Select topic" %>
有没有人知道做这样的事情的最好方法是什么?
最佳答案
我想你想要:
Topic.select('distinct on(name) id, name').order(:name)
https://stackoverflow.com/questions/22699471/