Class: Area

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/rails_ship/area.rb

Class Method Summary collapse

Class Method Details

.all_nationsObject



43
44
45
46
47
# File 'app/models/rails_ship/area.rb', line 43

def self.all_nations
  Rails.cache.fetch('areas/all_nations') do
    select(:nation).distinct.pluck(:nation)
  end
end

.listObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/rails_ship/area.rb', line 17

def self.list
  Rails.cache.fetch('areas/list') do
    nations.includes(provinces: :cities).map do |nation|
      {
        id: nation.id,
        name: nation.nation,
        provinces: nation.provinces.map do |province|
          {
            id: province.id,
            name: province.province,
            cities: province.cities.map do |city|
              { id: city.id, name: city.city }
            end
          }
        end
      }
    end
  end
end

.timestampObject



37
38
39
40
41
# File 'app/models/rails_ship/area.rb', line 37

def self.timestamp
  Rails.cache.fetch('areas/timestamp') do
    order(updated_at: :desc).last.updated_at.to_i
  end
end