Sha256: d3f0f52692fb7ae415211d8cf61a46e69a1ab4c20e39c0b8e0a80ee5efbb7e9c
Contents?: true
Size: 667 Bytes
Versions: 14
Compression:
Stored size: 667 Bytes
Contents
class RegionalShippingZone < ShippingZone validates :state_code, presence: true, uniqueness: { scope: :country_shipping_zone_id } validate :code_validity, if: lambda { |r| r.state_code && r.country } before_save :set_name delegate :country, to: :country_shipping_zone, allow_nil: true private def code_validity country = country_shipping_zone.country unless country.subregions.coded(state_code) errors.add(:state_code, "#{state_code} is an invalid regional code for country #{country.name}") end end def set_name country = country_shipping_zone.country self.name = country.subregions.coded(state_code).name end end
Version data entries
14 entries across 14 versions & 1 rubygems