在关注中定义的覆盖范围内调用super

时间:2015-02-11 07:45:17

标签: ruby-on-rails-4

我希望将其他查询链接到模型中的范围。范围在一个问题中定义。

module Companyable
    extend ActiveSupport::Concern

    included do
        scope :for_company, ->(id) {
            where(:company_id => id)
        }
    end
end


class Order < ActiveRecord::Base
    include Companyable

    # I'd like to be able to do something like this:
    scope :for_company, ->(id) {
        super(id).where.not(:status => 'cancelled')
    }
end

然而,这可以理解地引发NameError: undefined method 'for_company' for class 'Order'

1 个答案:

答案 0 :(得分:1)

以下是我提出的解决方案:

而不是sed -i 's/sometext/replacetext/g' *.php ,只需要使用常规类方法,因为scope只是&#34;语法糖&#34;对于一个类方法。当您需要使用scope覆盖时,这更容易处理。在你的情况下,它看起来像这样:

super