当我加载图像时,我试图处理路由错误,有些图像丢失了。
您知道,我只想用默认的图像图标替换丢失的图像,并抑制错误消息。
所以我试着
class ImagesController < ApplicationController
[...]
def index
images = Image.all
rescue_from ActionController::RoutingError, with: :image_route_error
end
[...]
end然后我得到了这个
NoMethodError (undefined method `rescue_from' for #<ImagesController:0x007fe382227e38>
Did you mean? rescue_handlers):有什么想法吗?
发布于 2017-07-18 11:33:49
您可以使用rescue_from方法处理除服务器错误之外的任何类型的异常。在ApplicationController中编写此方法。
rescue_from ActionController::RoutingError do |exception|
if controller_name == "image" && action_name == "index"
render 'default_image_here', status: 200
else
render plain: 'Not found', status: 400
end
end在render 'default_image_here'中,您可以使用以下内容:
render :text => open(image_url, "rb").read, status: 200这将以二进制而不是文本的形式读取文件。
https://stackoverflow.com/questions/45164953
复制相似问题