你从1800和1801两张唱片开始。
然后你删除了1800,所以
count_records_from_same_year
year.concat(sprintf '%02d', count_records_from_same_year)
将计算到已存在的1801。
如果要处理已删除试用号码的重新创建,请尝试以下操作。
def create_trial_number
current_count = count_records_from_same_year
year = (season_year).strftime("%y")
if current_count.zero?
self.trial_number = year.concat(sprintf '%02d', current_count)
else
expected_trial_numbers = (0..current_count).map{|i| "#{year}#{sprintf '%02d', i}".to_i }
existing_trial_numbers = self.class.where(season_year: (season_year.beginning_of_year..season_year.end_of_year)).order(:trial_number).pluck(:trial_number)
self.trial_number = (expected_trial_numbers - existing_trial_numbers).first
end
end