我想在创建User模型的实例时生成唯一的匿名用户名.理想情况下,如果我没有指定任何用户名,它将默认设置.
所以例如当我做User.create!()时我想将用户名列设置为'anonymous123',其中123是从序列中获取的唯一编号(该实例的id列的值将是ok ).
结合几个答案的例子就可以了
class User < ActiveRecord::Base
before_create :set_anonymous_username
def set_anonymous_username
username = "anonymous#{User.last.id + 1}" if username.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
我在这里使用了before_create,因为我希望你在第一次创建User之前只需要设置一个匿名用户名.每次保存模型时都会调用before_save,这可能是不必要的开销,但两者都可以工作
| 归档时间: |
|
| 查看次数: |
1874 次 |
| 最近记录: |