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 }
我有一个 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 }