Ruby on rails 如何在rails中返回不同的行?

Ruby on rails 如何在rails中返回不同的行?,ruby-on-rails,ruby,model,Ruby On Rails,Ruby,Model,我有一个模型程序,包含程序标题、部门id和日期字段。我插入了两行,它们具有相同的程序标题和日期,但部门id不同 Insert into programs(program_title,date,department_id) Values ("prog1","4/2/2017","1"); Insert into programs(program_title,date,department_id) Values ("prog1","4/2/2017","2"); 现在我想返回一些行,这些行将根据程

我有一个模型程序,包含程序标题、部门id和日期字段。我插入了两行,它们具有相同的程序标题和日期,但部门id不同

Insert into programs(program_title,date,department_id) Values ("prog1","4/2/2017","1");
Insert into programs(program_title,date,department_id) Values ("prog1","4/2/2017","2");
现在我想返回一些行,这些行将根据程序标题而不同,不管部门id是什么

@event_contents=Program.select(:id,:date,:program_title).distinct(:program_title)

但它仍然返回两行。非常感谢您的帮助。

在使用
DISTINCT
时,SQL只能折叠所有值相同的行。因为您选择的是
id
,这对于每个记录都是不同的,所以行不是不同的。例如:

---------------------------------
| id | program_title | date     |
---------------------------------
|  1 | prog1         | 4/2/2017 |
|  2 | prog1         | 4/2/2017 |
---------------------------------
您需要从
中排除
id
#选择
,它才能工作:

Program.select(:date, :program_title).distinct
试试这个

Program.all.distinct(:program_title).pluck( :id,:program_title,:date)
但它将以元素数组的形式返回数据


希望对您有所帮助。

尝试:
程序。选择(“不同的程序标题、id、日期、程序标题”)
已经尝试过了。不走运!您使用的rails版本是什么?请参见:版本4.2.5.1