我试图通过未来事件对事件进行排序然后已经结束的事件。我尝试使用2个不同的范围,但我现在想我可能需要使用类方法。我只是在努力,在语法上,我需要写这些方法。Rails 4:按2种不同的作用域/类方法排序
event.rb:
def active
self.event_date > Time.now
end
def inactive
self.event_date < Time.now
end
“活动日期” 是在事件表日期时间列。
events_controller.rb:
def index
@events = Event.all.sort_by {|a,b| [a.active, b.inactive]}
end
有了这个代码,我得到一个错误:“未定义的方法`不活跃”的零:NilClass”,但我已经尝试了几种不同的方式,并能似乎不知道如何写它。
为什么不EVENT_DATE公正的秩序? –
@ReubenMallaby,因为我想按升序排列活动事件,然后是非活动事件。 – BB123
'sort_by'只为其块使用一个参数:'Event.all.sort_by {| event | event.active}'(可以简化为'Event.all.sort_by(&:active)' – MrYoshiji