gpt4 book ai didi

ruby-on-rails - 通过模块共享范围?

转载 作者:行者123 更新时间:2023-12-03 11:31:46 25 4
gpt4 key购买 nike

我想通过将共享范围移动到模块中来干燥几个模型,例如:

module CommonScopes
extend ActiveSupport::Concern

module ClassMethods
scope :ordered_for_display, order("#{self.to_s.tableize}.rank asc")
end
end
我还想创建测试模块的共享规范。不幸的是,当我尝试在我的模型中包含共享范围时,我得到:
undefined method `order' for CommonScopes::ClassMethods:Module
有任何想法吗?谢谢!

最佳答案

就像在 rails 4 scope syntax您可以简单地使用 lambda 来延迟代码的执行(也适用于 rails 3):

module CommonScopes
extend ActiveSupport::Concern

included do
scope :ordered_for_display, -> { order("#{self.to_s.tableize}.rank asc") }
end
end

关于ruby-on-rails - 通过模块共享范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323793/

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