【问题标题】:Type of base ActiveRecords?基本 ActiveRecords 的类型?
【发布时间】:2013-07-22 18:28:57
【问题描述】:

所以我正在编写一个 gem 来扩展默认的 Rails 类。我已经让它适用于 ActiveRecord::Relation,我想我希望它适用于泛型类,但我无法识别它的类类型。

目前我有:

User.first.posts.test_method

作为 User.first.posts.class.name == "ActiveRecord::Relation" 工作

但是,我不知道如何让它工作:

User.test_method

User.class.name 只是返回Class,这并没有什么帮助。

我试图扩展到 ActiveRecord::Base 但没有运气。有什么想法吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    试试这个

    class ActiveRecord::Base
      class << self
        def this_should_work
          "it does"
        end
      end
    end
    
    User.this_should_work
    => "it does"
    

    【讨论】:

    • 有效!两个问题:1)我正在尝试使用 railties 和 ActiveRecord::Base.send :include 合并它,关于如何做到这一点的任何提示,以及 2)它为什么有效?!
    • Railtie 无法为您提供帮助,但这很有效,因为它重新打开了 ActiveRecord::Base 类并定义了一个新的类方法。一旦定义,ActiveRecord::Base 的任何子代都将配备该方法,因为它们是继承的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多