新手问题 如何编写 model 中的强制更新 method (感叹号方法)

samport · 2018年07月01日 · 最后由 samport 回复于 2018年07月02日 · 1065 次阅读

想给 model 写一个带感叹号的方法,没找到一个标准的范例。请教各位 model 里面正确的感叹号方法的写法。

目前我自己的写法如下:

class User < ActiveRecord::Base
  #...

  # 只改变属性
  def recharge(amount)
    self.balance += amount
  end

  # 改变属性,并立刻执行写数据库操作
  def recharge!(amount)
    self.recharge(amount)
    self.save!
  end

  #...
end

Rails 的 incrementincrement! 了解一下

pinewong 回复

如果只是对单个数字属性进行修改,确实可以使用incrementincrement !方法。但是如果里面有更复杂的逻辑处理,就没办法使用increment方法了。

我想知道,有没有一个内置的办法,对已有的方法,例如mymethod,直接就可以附上感叹号去调用mymethod !,而不用在类里面对感叹号方法进行定义。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号