为什么这种救援语法有效?

Mat*_*iby 5 ruby rescue

好的,所以我有一个我正在使用的应用程序的方法,它在生产中工作.我的问题为什么这有效?这是新的Ruby语法吗?

def edit
  load_elements(current_user) unless current_user.role?(:admin)

  respond_to do |format|
    format.json { render :json => @user }   
    format.xml  { render :xml => @user }
    format.html
  end

rescue ActiveRecord::RecordNotFound
  respond_to_not_found(:json, :xml, :html)
end
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 13

rescuebegin当它们在一个方法中时,不需要与显式绑定,这就是定义语法的方式.例如,请参阅此处的#19此SO问题,以及上面的欺骗.