ruby-on-rails – 是否有ruby铁轨宝石,使得范围日期变得容易

ruby-on-rails – 是否有ruby铁轨宝石,使得范围日期变得容易,第1张

概述有谁知道一个宝石,使范围日期容易?我喜欢做Model.this_year(:created_at).where()……等等.我以为我听过一次. 我正在考虑dues_paid_this_year或updated_at_two_hours_ago的内容.通过创建动态范围可以像search_logic这样做的宝石会让我的世界变得可爱 我不知道有什么宝石 – 虽然创造它会很酷.话虽如此,这可能会让你: c 有谁知道一个宝石,使范围日期容易?我喜欢做Model.this_year(:created_at).where()……等等.我以为我听过一次.

我正在考虑dues_paID_this_year或updated_at_two_hours_ago的内容.通过创建动态范围可以像search_logic这样做的宝石会让我的世界变得可爱

解决方法 我不知道有什么宝石 – 虽然创造它会很酷.话虽如此,这可能会让你:

class Thing < ActiveRecord::Base  # Some date-related scopes  scope :today,where("created_at > ?",Time.Now.beginning_of_day)  scope :yesterday,where("created_at < ? and created_at > ?",1.day.ago.end_of_day,1.day.ago.beginning_of_day)  scope :this_month,Time.Now.beginning_of_month)  scope :last_month,1.month.ago.end_of_month,1.month.ago.beginning_of_month)  scope :this_year,Time.Now.beginning_of_year)  ###   # All your model stuff goes here  ###  # Let's get real tricky with method_missing   # and allow Thing.last_X_days for work for any value of X  private  def self.method_missing(method,*args,&block)     if method.to_s =~  /^last_(\d+)_days$/i      days = method.to_s.match(/^last_(\d+)_days$/i)      return self.where("created_at > ?",days[1].to_i.days.ago.beginning_of_day)    else      super    end  end   end

这将为您提供一些基本的范围,如Thing.this_month …以及一个动态查找器,它可以让您执行类似于Thing.last_90_days的 *** 作并适用于任何数字(警告:我有点像method_missing n00b,代码适用于我,但也许有人可以仔细检查它).

仅供参考我在这里假设Rails 3.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 是否有ruby/铁轨宝石,使得范围日期变得容易全部内容,希望文章能够帮你解决ruby-on-rails – 是否有ruby/铁轨宝石,使得范围日期变得容易所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存