2017-06-01 82 views
0

我有困難的時間搞清楚如何正確查詢我的數據庫。Rails查詢不同

我的查詢是這樣的:

@events = Event.where("startdate > '#{now}'") 

有一個名爲name的事件模型中的專欄中,我需要返回其name是截然不同的所有事件,但我也需要所有列。我怎麼做到這一點?

我認爲這會工作,但它不是:

@events = Event.where("startdate > '#{now}'").uniq 

然後我意識到,這已經不知道要尋找什麼,在判斷的獨特性,我怎麼告訴獨有看名字列判斷唯一性?

數據:

ID | Name   | Description | start 
1 christmas  holiday  12-25-16 
2 christmas  holiday  12-25-17 
3 thanksgiving holiday  11-24-16 

應該返回

1 christmas  holiday  12-25-16 
3 thanksgiving holiday  11-24-16 

感謝,

+1

你是什麼意思「誰的名字是不同的」?只有一個事件,如果有更多的同名事件?它是否正確? – Ursus

+0

Eddited,是的,有一列名爲「名稱」 – jacksonecac

+1

那麼,在這種情況下,來自同名事件的一個隨機事件? – Ursus

回答

1

可以使用塊說uniq怎麼做工作

@events = Event.where("startdate > '#{now}'").uniq(&:name) 

Otherwis e,可能這樣更好,你可以用SQL做所有的事情,因爲 uniq不是,它迭代你的結果集。

@events = Event.where("startdate > '#{now}'").group(:name) 
+0

完美,謝謝 – jacksonecac

+0

我的榮幸爵士 – Ursus

0

您可以通過以下方式運行查詢:

@event = Event.where("startdate > '#{now}'").uniq(:name) 

這將是能夠給你只有唯一條目數據。