Rescue_from 不工作
Rescue_from is not working
我在加载图像时试图处理路由错误,但有些图像丢失了。
你知道我只想用默认图像图标替换丢失的图像并抑制错误消息。
所以我尝试了
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):
有什么想法吗?
您可以使用 rescue_from
方法 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
这会将文件读取为二进制而不是文本。
我在加载图像时试图处理路由错误,但有些图像丢失了。
你知道我只想用默认图像图标替换丢失的图像并抑制错误消息。
所以我尝试了
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):
有什么想法吗?
您可以使用 rescue_from
方法 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
这会将文件读取为二进制而不是文本。