[英]Sidekiq::Rails:Class overrides default Rails class
Sidekiq :: Rails:Class覆蓋全局Rails :: Class
我正在嘗試調用Rails.cache方法,但出現錯誤“ Sidekiq :: Rails:Class的未定義方法'cache'”。 我檢查了調試器,發現該方法中的'Rails'類類型是Sidekiq :: Rails:Class,而不是默認的Rails:Class。 我認為在運行時sidekiq覆蓋了Rails主類。
def index
##
## >>>>>> Rails here is identified as Sidekiq::Rails:Class
@cities = Rails.cache.fetch("cities", :expires_in => 10.days) do
City.all
end
render :json => {:list => @cities}
end
您必須引用“根” Rails
類,這可以通過::
:
::Rails.cache.fetch('cities', express_in: 10.days) do
# ...
如果您有類似以下內容,請擴展我的答案:
module Sidekiq
# body
end
它將整個body
的默認命名空間設置為Sidekiq
,因此,如果您要引用其中的某個常量,就像使用Rails
,Ruby會首先搜索Sidekiq::Rails
,然后向上進行命名空間層次結構搜索::Rails
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.