مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
feat: add priorities to IP address assignment
هذا الالتزام موجود في:
@@ -9,6 +9,7 @@
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
# hostname :string(255)
|
||||
# priority :integer
|
||||
#
|
||||
|
||||
class IPAddress < ApplicationRecord
|
||||
@@ -18,5 +19,26 @@ class IPAddress < ApplicationRecord
|
||||
validates :ipv4, :presence => true, :uniqueness => true
|
||||
validates :hostname, :presence => true
|
||||
validates :ipv6, :uniqueness => {:allow_blank => true}
|
||||
validates :priority, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 100, only_integer: true }
|
||||
|
||||
scope :order_by_priority, -> { order(priority: :desc) }
|
||||
|
||||
before_validation :set_default_priority
|
||||
|
||||
private
|
||||
|
||||
def set_default_priority
|
||||
return if priority.present?
|
||||
|
||||
self.priority = 100
|
||||
end
|
||||
|
||||
class << self
|
||||
|
||||
def select_by_priority
|
||||
order(Arel.sql("RAND() * priority DESC")).first
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم