在模型中使用after_create回调设置值是不好的技巧?

时间:2014-11-28 05:31:37

标签: ruby-on-rails devise override account

我在rails 4应用程序中使用设计。 我想要做的是,在创建帐户后,为帐户分配一个随机的6位数帐号(在:number列中)。

我不想完成覆盖注册控制器的过程,而只想添加以下形式的方法(在模型中.rb)

after_create :set_number

def set_number
  self.number = GET_RANDOM_NUMBER
  self.save
end

这是不好的做法吗?我应该覆盖控制器并在create方法中执行此操作吗?

1 个答案:

答案 0 :(得分:2)

不,这不是不好的做法。

你也可以这样做

after_initialize :set_number, :if => :new_record?

def set_number
  self.number = GET_RANDOM_NUMBER
  self.save
end