0

我如何在 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

但是这不起作用,有人可以帮我解释一下需要做什么吗

4

1 回答 1

1

where作用域的工作方式与 Rails 中其他任何地方的工作方式相同:

where(:expiry_date => Date.today)

你给它一个带有键/值的散列。你的方式,使用==,基本上调用where(false),因为==不是“传入”,它会立即解决(作为一个符号和日期总是不相等的)并且结果值被传递给where.

于 2013-12-12T13:44:51.123 回答