如何正确使用例外?

时间:2015-07-07 19:10:10

标签: ruby-on-rails ruby

请帮忙咨询。我无法确定代码更正确。

UserController variant1:

def create
  @user = User.new(user_params)   

  if  @user.save
    sign_in @user
    flash[:success] = "Welcome  to  the Sample  App!"
    redirect_to  @user
  else
    flash.now[:error] = 'Invalid data' 
    render  'new'
  end
end 

UserController variant2:

def create
  begin
    @user = User.new(user_params)   
    @user.save
    sign_in @user
    flash[:success] = "Welcome  to  the Sample  App!"
    redirect_to  @user
  rescue      
    flash.now[:error] = 'Invalid data' 
    render  'new'
  end
end 

1 个答案:

答案 0 :(得分:0)

由于几个原因,变体1更正确。这里有一些广泛的观点。例外应该是例外。他们应该被抓住并成长。当您提出异常时,您也应该寻找特定的异常。我知道这些是广泛的,但你应该阅读有关例外情况 - 这里是关于在控制器http://guides.rubyonrails.org/action_controller_overview.html中使用异常的Rails指南。