Любая альтернатива redirect_to в приложении только для рельсов API?

Я хотел бы перенаправить на другое действие url в контроллере rails. как

def action_name
  redirect_to url
end

Я знаю, что могу сделать это, просто используя вышеуказанный метод. Но я хочу перенаправить только одно действие во всем моем приложении. из-за этого я не хочу включать это в контроллер.

include ActionController::Redirecting

есть ли другой способ перенаправить на uri в приложениях только для API. Спасибо.


person Community    schedule 29.07.2016    source источник
comment
визуализировать статус 302 и заголовок местоположения?   -  person Зелёный    schedule 29.07.2016


Ответы (2)


Вы можете использовать respond_with, который ответит соответствующим ответом в зависимости от типа запроса и статус модели вы передаете respond_with.

def create
  @thing = Thing.create(thing_params)
  respond_with(@thing)
end 

Это даст статус 201 - Created и заголовок местоположения, если запрос выполнен успешно, и 422 - Unprocessable Entity, если проверка не пройдена.

В качестве альтернативы вы можете использовать head для отправить ответ только в заголовке без тела.

def action_name
  head :not_found, location: url
end

Обратите внимание, что :not_found может быть любым подходящим статусом HTTP.

person max    schedule 29.07.2016
comment
respond_with станет еще более мощным, если вы добавите гем респондентов. - person max; 29.07.2016

Если вы используете API Rails:

Проложите свой путь, возьмите params и вернитесь:

redirect_to controller: "client", action: "get_name", params: request.query_parameters and return
person Darlan D.    schedule 22.05.2019