mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Cache default country simply in memory
This simplifies the code, avoids a method naming collision with Rails and should be faster as well.
This commit is contained in:
@@ -6,12 +6,6 @@ module Spree
|
||||
|
||||
validates :name, :iso_name, presence: true
|
||||
|
||||
def self.cached_find_by(attrs)
|
||||
Rails.cache.fetch("countries/#{attrs.hash}", expires_in: 1.hour) do
|
||||
find_by(attrs)
|
||||
end
|
||||
end
|
||||
|
||||
def <=>(other)
|
||||
name <=> other.name
|
||||
end
|
||||
|
||||
@@ -10,7 +10,10 @@ class DefaultCountry
|
||||
end
|
||||
|
||||
def self.country
|
||||
Spree::Country.cached_find_by(iso: ENV.fetch("DEFAULT_COUNTRY_CODE",
|
||||
nil)) || Spree::Country.first
|
||||
# Changing ENV requires restarting the process.
|
||||
iso = ENV.fetch("DEFAULT_COUNTRY_CODE", nil)
|
||||
|
||||
# When ENV changes on restart, this cache will be reset as well.
|
||||
@country ||= Spree::Country.find_by(iso:) || Spree::Country.first
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user