关于自定义验证方法的建议

时间:2011-01-29 19:01:31

标签: ruby-on-rails ruby validation ruby-on-rails-3 methods

我正在使用Ruby on Rails 3,我想知道我的验证新记录的方法是否合适。

我不使用常见的RoR验证系统,因此在我的模型中,我有所有这些自定义验证方法:

  def validates_user_name(user)
    ...
  end

  def validates_user_surname(user)
    ...
  end

  ...

我以这种方式从控制器调用

def create
  ...
  @user.validates_user_name(params[:user])
  @user.validates_user_name(params[:user])
  ...
end

验证新用户的创建是一种好方法吗?黑客使用这种方法会有问题吗?

1 个答案:

答案 0 :(得分:1)

我认为你很难说服任何人你的自定义验证比Rails内置的更好,特别是如果验证逻辑相似的话。

如果你仍然希望控制发生的事情,你应该利用像before_create这样的内置回调钩子。这样做有很多好处,包括自动事务回滚和解耦。但是,如果你正在做的事情已经由Rails完成,那么重新发明轮子是不可取的。