我在资源页面上有以下范围:
scope("Current Active Event Registrations") { |scope| Event.current_active_event_registrations }
查看页面时我遇到的错误是:
undefined method `except' for nil:NilClass
c = c.except :select, :order
Event
中的代码如下所示:
class Event < ActiveRecord::Base
has_many :registrations
scope :active_event, -> { where(active: true) }
scope :not_expired_active, -> { active_event.where('end_at > ?', DateTime.now) }
after_save :check_for_other_active_events
def random_winner
self.registrations.order("RANDOM()").first
end
def self.current_active_event_registrations
events = self.not_expired_active
events.first.registrations unless events.blank?
all if events.blank?
end
private
def check_for_other_active_events
Event.where('id != ?', self.id).update_all(active: false) if self.active
end
end
我只想将自定义范围添加到ActiveAdmin后端的“注册资源”页面中。
我使用的是Rails 4和最新的ActiveAdmin
答案 0 :(得分:0)
def self.current_active_event_registrations
events = self.not_expired_active
if events.blank?
all
else
events.first.registrations
end
end