gpt4 book ai didi

ruby-on-rails - ActiveRecord 类方法/关系自

转载 作者:行者123 更新时间:2023-12-03 16:04:23 26 4
gpt4 key购买 nike

我正在编写一些围绕 ActiveRecord 模型使用代理对象的 Rails 代码。但是,每当在 ActiveRecord::Relation 上调用类方法时或 ActiveRecord::Associations::CollectionProxyself的值是原始的 ActiveRecord 类,而不是关系。例如:

class Blah < ActiveRecord::Base   
def self.thing
MyProxyObject.new(self)
end
end

Blah.thing #<MyProxyObject @wrapped=Blah>

Blah.where(:column => 'value').thing #<MyProxyObject @wrapped=ActiveRecord::Relation>

所需的功能是第二种情况下的包装对象是 ActiveRecord::Relation Blah.where 返回的对象.有没有一种简单的方法来实现这一目标?

最佳答案

类似的东西

class Blah < ActiveRecord::Base   
def self.thing
MyProxyObject.new(all)
end
end

对我有用(在 rails 4 之前,使用 scoped 而不是全部):
Blah.where(:foo => 1).thing

导致代理对象与应用的适当条件保持关系。

关于ruby-on-rails - ActiveRecord 类方法/关系自,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com