У меня есть два метода, которые я хочу запустить в нескольких действиях контроллера.Multiple before_action в контроллере Rails?
def get_offer
@offer = Offer.find_by :uuid => params[:offer_id]
if @offer.blank?
error_response = ErrorResponse.new("Offer not found")
render json: error_response, :status => :not_found and return
end
end
def validate_api_v2
api_version = params[:api_version]
if api_version != api_version_to_validate
error_response = ErrorResponse.new("API version not supported")
render json: error_response, :status => :bad_request and return
end
end
Как я могу запустить их обоих в действиях action_a
, action_b
, только один в action_c
и action_d
, и ни один из них в action_e
?
Будут ли выполняться эти функции в том же порядке, что и определено? – Nimo
Не гарантируется. Если вам нужно, чтобы один из них был первым, вы наверняка можете использовать 'prepend_before_action'. Вы можете прочитать здесь: http://hollandaiseparty.com/order-of-abstractcontrollercallbacks/ – IngoAlbers