Rails: 选择带有 ID 的唯一标签值

Rails: Selecting unique label values with its ID

我有一个 table,其中 labels 不是唯一的,具有唯一的 ID,如何 select 具有与之关联的任何 ID 的唯一性 labels

@questionnaireload = Questionnaire.select("DISTINCT label","id")

但这给了我

#<ActiveRecord::Relation [#<Questionnaire label: "Closet", id: 4>, #<Questionnaire label: "Styling", id: 1>, #<Questionnaire label: "Freestyle", id: 5>, #<Questionnaire label: "Styling", id: 2>]>

我想要 <Questionnaire label: "Styling", id: 1><Questionnaire label: "Styling", id: 2>,但不能两者都想要, 我看了 pluck,但这也没有用

你可以这样做,试试下面的

Questionnaire.select('DISTINCT on (label) label, id') 

如果您使用 sqlite3 它不会起作用,但它会起作用 postgresql

尝试下面的查询,我认为它应该有效。传递数组中的参数,因为它是通过错误的参数错误。

@questionnaireload = Questionnaire.select(['DISTINCT label', 'id']).uniq_by { |obj| obj.label }