ruby-on-rails - 通过初始化程序向 ActiveRecord::Base 添加范围?

标签 ruby-on-rails activerecord initializer scoping

我试过通过初始化器添加这样的作用域

class ActiveRecord::Base        
  scope :this_month,  lambda { where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month) }
end

但是我收到错误“NoMethodError:未定义的方法‘abstract_class?’对于对象:类”。执行此操作的正确方法是什么?

最佳答案

您正在重写一个类,而您本应通过模块进行重写。 我也会对这种方法有点小心,因为你依赖于每个具有 created_at 的模型

module ActiveRecord
  class Base
    scope :this_month,  lambda { where(:created_at => Time.now.beginning_of_month..Time.now.end_of_month) }
  end
end

关于ruby-on-rails - 通过初始化程序向 ActiveRecord::Base 添加范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402672/

相关文章:

javascript - ActionCable channel 示例 1 : User appearances. 循环?

mysql - 查询 rails 中的加入关联

ruby-on-rails - Rails 3 上的 Postgres 复合类型

c - 如何定义外部变量和声明?

c# - 初始化静态数组的正确语法

ruby-on-rails - 运行 rails 控制台时是否调用了 Rails 初始值设定项

ruby-on-rails - 在 Rails 中建立 has_many 关系

ruby-on-rails - rails i18n 日期问题

codeigniter - 当可能没有行更新时,使用 Codeigniter 检查 db->update 是否成功

ruby-on-rails - 我可以将 IP 地址存储为整数吗?