Rails 3:处理ActiveRecord :: RecordNotUnique异常

don*_*ald 15 ruby-on-rails ruby-on-rails-3

如何ActiveRecord::RecordNotUnique在控制器中处理异常?谢谢

编辑:我在生成唯一代码时遇到异常.我可以在application_controller.rb中处理异常,但我真正想要的是再次生成代码并且必须在控制器中完成.

generate_code
@couponcode = Couponcode.new(:user_id => current_user.id, :code => @code)
Run Code Online (Sandbox Code Playgroud)

编辑2:

generate_code

begin
  @couponcode = Couponcode.new(:user_id => current_user.id, :code => @code)
rescue ActiveRecord::RecordNotUnique
  #generate_code
  @code = "111-11111" 
  @couponcode = Couponcode.new(:user_id => current_user.id, :code => @code)           
end
Run Code Online (Sandbox Code Playgroud)

idl*_*ers 27

begin
  # do stuff
rescue ActiveRecord::RecordNotUnique
  # handle the exception however you want to
end
Run Code Online (Sandbox Code Playgroud)

http://ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html

rescue_from如果你经常需要处理它,你也可以使用它.