所以我有这样的事情:
class Account < ActiveRecord::Base
validate :check_credit
belongs_to :user
private
def check_credit
check = HTTParty.get(CREDIT_URL, query: {account_id: id})
if !check.eligible
user.update_attributes(:xx => xx)
errors.add(:base, "Sorry, you are not eligible")
end
end
end
当我看到日志时,user.update_attributes(:xx => xx)
似乎启动然后回滚,我想是因为我添加了一个错误,但我不确定为什么这是一个问题,因为该更新与验证,即使存在验证错误也应该执行。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
可能是用户对象无效?如果对象中有错误,则Active记录不会更新数据库:
如果任何验证失败,该对象将被标记为无效 Active Record不会执行INSERT或UPDATE操作