在将我的应用程序从Rails 3.2迁移到Rails 4.2时,我看到了很多变化,其中,范围语法是其中之一。 我修改了所有其他范围,但担心这个:
scope :created_between, lambda { |start_at, end_at|
{ :conditions => {'users.created_at' => (start_at..end_at)} }
}
以上范围为在特定日期之间创建的用户提供了相关的控制器方法代码:
def user_count
result = []
[
{:label => 'today', :start => Time.zone.now.beginning_of_day, :end => Time.zone.now.end_of_day},
{:label => 'yesterday', :start => 1.days.ago.beginning_of_day, :end => 1.days.ago.end_of_day},
{:label => 'this week', :start => Time.zone.now.beginning_of_week, :end => Time.zone.now.end_of_week},
{:label => 'last week', :start => 7.days.ago(Time.zone.now.beginning_of_week), :end => 7.days.ago(Time.zone.now.end_of_week)},
{:label => 'this month', :start => Time.zone.now.beginning_of_month, :end => Time.zone.now.end_of_month},
{:label => 'last month', :start => Time.zone.now.prev_month.beginning_of_month, :end => Time.zone.now.prev_month.end_of_month},
].each do |time_frame|
result << [time_frame[:label], User.includes(:account).only_deleted.deleted_between(time_frame[:start], time_frame[:end]).count, User.includes(:account).with_deleted.created_between(time_frame[:start], time_frame[:end]).count]
end
end
如何使用当前的Rails 4.2语法修改与控制器方法匹配的上述范围?
答案 0 :(得分:0)
Rails 4.2使用较短的lambda样式作为范围,因此它将变为:
{{1}}