2017-04-02 4 views
1

フィールドprogram_title、department_id、dateを含むモデルプログラムがあります。プログラムのタイトルと日付は同じで、department_idとは異なる2つの行を挿入しました。レールで別の行を返すには?

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"); 

は今、私はDEPARTMENT_IDも何でもprogram_titleによって区別される行を返すようにしたいです。私は試しましたが、それでも両方の行が返されます。

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

どんな助けもありがとうございます。

+0

try: 'Program.select(" distinct program_title、id、date、program_title ")' – linnal

+0

はすでに試してみました。いいえ、運がない! – enamul17

+0

どのようなレールバージョンを使用していますか? – linnal

答えて

2

DISTINCTを使用すると、すべての値が同じである行しか折りたたまれません。 id(レコードごとに異なる)を選択しているため、行は区別されません。例:

--------------------------------- 
| id | program_title | date  | 
--------------------------------- 
| 1 | prog1   | 4/2/2017 | 
| 2 | prog1   | 4/2/2017 | 
--------------------------------- 

それを動作させるためにあなたの#selectからidを除外する必要があります:

Program.select(:date, :program_title).distinct 
0

この

Program.all.distinct(:program_title).pluck(:id,:program_title,:date) 

はそれはしかし要素の配列としてデータを返します試してみてください

希望すると便利です

関連する問題