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

samport · July 01, 2018 · Last by samport replied at July 02, 2018 · 1054 hits

想给 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! 了解一下

Reply to pinewong

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.