0
我在我的Mac Sierra機器上使用Rails 4.2.7(PostGres 9.5)。我想使用內存緩存來緩存一些更常見的數據庫查詢。例如,下面是一些高速緩存方法的典範......如何讓Rails使用我的內存緩存而不是數據庫?
class DistanceUnit < ActiveRecord::Base
def self.cached_find_by_id(id)
Rails.cache.fetch("#{id}") do
find_by_id(id)
end
end
def self.cached_find_by_abbrev(abbrev)
Rails.cache.fetch("#{abbrev}") do
find_by_abbrev(abbrev)
end
end
end
我調用「cached_find_by_id」和「cached_find_by_abbrev」在我的應用程序。然後在我的./config/environments/development.rb文件我有
config.action_controller.perform_caching = true
...
# Enable the Rails cache
config.cache_store = :memory_store
但是當我在本地運行我的申請,我注意到SQL查詢運行...
DistanceUnit Load (0.4ms) SELECT "distance_units".* FROM "distance_units" WHERE "distance_units"."id" = $1 LIMIT 1 [["id", 4]]
…
DistanceUnit Load (0.3ms) SELECT "distance_units".* FROM "distance_units" WHERE "distance_units"."id" = $1 LIMIT 1 [["id", 4]]
,我需要些什麼如何讓Rails使用我的緩存方法? Rails似乎根本沒有使用我的內存緩存。