表用户(包含id,username,password,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')</pre>
如何避免这种情况?我应该在控制器中写什么(有些如果?)
谢谢!
答案 0 :(得分:1)
您可以验证模型中的唯一性
validates :email, :uniqueness => :true
或者您可以在控制器中拯救RecordNotUnique,如此
begin
# create user
rescue ActiveRecord::RecordNotUnique => e
# handle duplicate entry
end
答案 1 :(得分:1)
你不应该在控制器中这样做。这些是您应该在模型中进行的验证。请仔细阅读this guide以了解如何解决此问题。