Часто, когда я имею дело с контроллерами, я обнаружил необходимость остановить текущее действие и затем показать страницу с ошибкой.В настоящее время у меня есть метод, чтобы показать мою страницу ошибки в контроллере приложения:
class ApplicationController < ActionController::Base
def show_error msg
render file: 'public/404.html', message: msg, layout: false
end
end
А затем с другого контроллера я могу использовать его так:
class BikesController < ApplicationController
def inspect
@bike = Bikes.find(params[:id])
show_error("You can't inspect a bike without wheels!") and return unless @bike.hasWheels?
@similar_bikes = Bikes.similar_to(@bike)
render "inspect"
end
end
Однако мне не нравится включатьand return
вместе с моим show_error
методом, чтобы гарантировать, что больше ничего не выполняется.Есть ли более чистый способ сделать это без использования return
?