如何避免错误 – >重复输入
表用户(具有id,用户名,密码,is_admin)
我的控制器(我添加的地方)
def create @user = User.new(params[:respondent]) # entered = User.find(:all, :conditions => ["email = ?", @user]) render :json => @user.to_ext_json(:success => @user.save) return false end
当我粘贴相同的电子邮件时,我得到了这个:
pre>Mysql::Error: Duplicate entry 'sam@sa.com' for key 'email': INSERT INTO `users` (`created_at`, `updated_at`, `email`) VALUES('2011-05-05 09:05:57', '2011-05-05 09:05:57', 'sam@sa.com')
怎么避免这个? 我应该在控制器中写什么(有些如果?)
谢谢!
您可以validation模型中的唯一性
validates :email, :uniqueness => :true
或者您可以像这样在控制器中拯救RecordNotUnique
begin # create user rescue ActiveRecord::RecordNotUnique => e # handle duplicate entry end
你不应该在控制器中这样做。 这些是您应该在模型中进行的validation。 请仔细阅读本指南以了解如何进行操作。