在保存一个 record 的时候,我做了一个 before_save,对 record 进行判断并修改它的一个属性值。坑爹的是这个属性值是 boolean,如果方法返回 true 还好,record 可以保存,但是如果返回 false,属性值是赋上了 false,方法也返回 false,同时这个 false 会影响 before_save,导致 save!失败。 没办法,我只能在 before_save 调用的方法中最后返回一句话,以保证永远都是 true,但是这样做感觉挺 sb 的,不知道正确的做法是啥样的?感谢?
class Host < ActiveRecord::Base
before_save :idle?
validates :HostName, presence: true
def idle?
if ( self.Adapter1IP.empty? && self.Adapter2IP.empty? && self.Adapter3IP.empty? && self.Adapter4IP.empty? && self.Adapter5IP.empty? )
self.Idle = true
else
self.Idle = false
end
"shit!"
end
end