在活动管理中创建和使用范围

时间:2013-12-12 13:42:35

标签: ruby-on-rails ruby activeadmin scopes

如何在Active Admin中使用范围,在此示例中,我尝试显示有效期限等于今天日期的所有成员。

class Member < ActiveRecord::Base
--- Code removed for brevity


#Scopes
  scope :expired_today, where(:expiry_date == Date.today)
end

在活动的管理信息中心内,我想显示所有已过期的成员

columns do

   column do
    panel "Expired Memberships", :class => 'expiredmemberships' do
     table_for Member.expired_today do 
       column("Name")  do |m| 
         "#{m.forename}  #{m.surname}" 
       end
     end
   end
  end 
 end

这不行,有人可以帮助我解释需要做什么吗

1 个答案:

答案 0 :(得分:1)

where与范围一样,与Rails中的其他任何地方一样:

where(:expiry_date => Date.today)

你给它一个带键/值的哈希值。你的方式,使用==,基本上调用where(false),因为==没有“传入”,它立即被解决(作为符号为false,日期将始终不相等)和结果值将传递给where