在rails api中只有应用程序的redirect_to的替代方法吗?

时间:2016-07-29 09:35:25

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

我想在rails控制器操作中重定向到另一个url。像

def action_name
  redirect_to url
end

我知道我可以简单地使用上述方法。但我想在我的所有应用程序中只重定向一个动作。因为这个我不想把它包含在控制器中。

include ActionController::Redirecting

有没有其他方法可以在api应用程序中重定向到uri。感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用respond_with根据请求类型和传递给respond_with的模型的状态,使用适当的响应进行响应。

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

如果请求成功,这将提供201 - Created状态和位置标头,如果验证失败,则会提供422 - Unprocessable Entity

另外,您可以head使用send a header only response而不使用正文。

def action_name
  head :not_found, location: url
end

请注意,:not_found可以是任何适当的HTTP状态。

答案 1 :(得分:0)

如果您使用的是Rails API:

沿路径行进,走params,然后返回:

redirect_to controller: "client", action: "get_name", params: request.query_parameters and return