我正在尝试构建一个注册模块,用户只有在他们的电子邮件已经在现有数据库中时才能注册。
楷模:
- 用户
- 老用户
用户的条件将是
if OldUser.find_by_email(params[:UserName]) exists, allow user registration.
If not, then indicate error message.
这在 PHP 中非常简单,我可以运行一个函数来执行 mysql 查询。但是,我无法弄清楚如何在 Rails 上做到这一点。看起来我必须创建一个自定义验证器函数,但对于这样一个简单的条件似乎有点过头了。
做起来应该很简单。我错过了什么?
任何指针?
编辑1:
dku.rajkumar 的这个解决方案稍作修改即可工作:
validate :check_email_existence
def check_email_existence
errors.add(:base, "Your email does not exist in our database") if OldUser.find_by_email(self.UserName).nil?
end
对于这种情况,在模型中还是在控制器中进行验证更好?