我想在ActiveRecord模型(pos)中分配一個字段到目前爲止的最高值1+。以下任一版本都會產生無限循環。我無法弄清楚爲什麼。你能看見它嗎?這爲什麼會產生一個無限循環?
class Question < ActiveRecord::Base
attr_accessible :text, :pos, :data_type, :active
has_many :values
belongs_to :program
after_initialize :assign_pos
def row_label
text
end
def self.highest_pos
self.order("pos DESC").first
end
def assign_pos
puts "********* #{Question.highest_pos + 1}" # option 1
self.pos = Question.highest_pos + 1 # option 2
end
end
這並不是做到這一點。讓數據庫增加值。唯一的缺點是,在記錄保存之前,您不會提前知道新值。 – 2012-11-20 21:43:28
此外,它不是一個增量,因爲用戶之間可能已經改變了pos值 – pitosalas