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

时间:2018-03-16 03:14:54

标签: ruby-on-rails ruby-on-rails-4 activerecord

我有一张表labels与唯一ID不唯一,如何选择与其关联的任何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>都不是, 我看着采摘,但这也没有帮助

2 个答案:

答案 0 :(得分:1)

您可以执行此操作,请尝试以下

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

如果您使用sqlite3但它有效postgresql

,则无效

答案 1 :(得分:1)

尝试以下查询,我认为它应该可行。传递了数组中的参数,因为它是通过错误的参数错误。

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