gpt4 book ai didi

ruby-on-rails - 如何从类方法返回未更改的 AR 关系

转载 作者:行者123 更新时间:2023-12-04 02:13:42 26 4
gpt4 key购买 nike

我有这样的代码:

class Item < ActiveRecord::Base
class << self
def for_category(c)
if c
return where(:category_id => c.id)
else
return self
end
end
end
end

我需要这样调用它:

Item.where("created_at > ?", Time.now - 1.week).for_category(@category)

@category 可以为 null 也可以不为 null。在类别为空的情况下,我希望该方法简单地通过并返回不变的关系。当然,return self 只是返回 Item 类。

执行此操作的正确方法是什么?

最佳答案

您是否试图返回作用域(而不是类本身)以进行进一步的作用域操作?如果是这样,那么像下面这样的东西应该可以工作:

class Item < ActiveRecord::Base
class << self
def for_category(c)
if c
return where(:category_id => c.id)
else
return scoped
end
end
end
end

HTH

关于ruby-on-rails - 如何从类方法返回未更改的 AR 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501703/

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