小编lui*_*uiz的帖子

当我有一个自定义页面时,获取404 Not Found默认错误页面"Active Record :: RecordNotFound"

我有404和500状态代码的自定义错误页面,当我放置localhost:3000/something.html时,它工作正常.但是当我放置localhost:3000/controller/element_of_a_model时不起作用.

routes.rb中:

if Rails.env.production? then
  unless Rails.application.config.consider_all_requests_local
    get '*not_found', to: 'errors#error_404'
    get '*internal_server_error', to: 'errors#error_500'
  end
else
  unless
    get '*not_found', to: 'errors#error_404'
    get '*internal_server_error', to: 'errors#error_500'
  end
end
Run Code Online (Sandbox Code Playgroud)

ErrorsController:

def error_404
    render_error 404
end

def error_500
    render_error 500
end

private
   def render_error(status)
       respond_to do |format|
           format.html { render 'error_' + status.to_s() + '.html', :status => status, :layout => 'errors'}
           format.all { render :nothing => true, :status => status }
   end
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails custom-error-pages http-status-code-404

4
推荐指数
1
解决办法
3264
查看次数