如何从rails

时间:2016-09-07 14:34:02

标签: ruby-on-rails

我这里有这段代码

popular = Impression.select('impressionable_id, count(impressionable_id) as total').group('impressionable_id').order('total desc').limit(9)
@events = Event.where(id: popular.map(&:impressionable_id))

然而,目前正在发生的事情是@events正在返回重复的名称。我想知道如何返回它们而不返回匹配的名称。

更新

这就是我的意思,

基本上@events工作正常,我可以调用@events.eventname并在视图中获得9个不同的事件。

但是,如果例如Charity Fun Day出现两次(有两个不同的ID),我不希望事件名称在此显示两次。

1 个答案:

答案 0 :(得分:0)

@events = Event.where(id: popular.map(&:impressionable_id)).uniq

会为您提供独特的活动项目。

如果存在不同名称的事件,则可以执行

@events = Event.where(id: popular.map(&:impressionable_id))
@events.uniq{|event| event.name }