我有一個具有「百分比」一軌模型屬性屬性總和軌
我想確保所有「百分比」的總和不> 100添加新值時。
在我的模型,我有
validate :sum_can_not_exceed_hundred
def sum_can_not_exceed_hundred
if Result.all.sum(:percentage) > 100
errors.add(:base, :sum_can_not_exceed_hundred)
end
end
但這並不用於添加不在數據庫中的記錄工作,這些都已經被儲存。
更新: 以下似乎工作,使用提示從Coderhs
if Result.where.not(id: self.id).sum(:percentage_share) + self.percentage_share > 100
errors.add(:base, :sum_can_not_exceed_hundred)
end
你可以叫上## before_create方法的代碼:check_percentage – Milind