可以在 Rails 中创建此重定向路线吗?

Posted

技术标签:

【中文标题】可以在 Rails 中创建此重定向路线吗?【英文标题】:Possible to create this redirecting route in Rails? 【发布时间】:2011-01-31 22:38:51 【问题描述】:

是否可以在 Rails 应用的路由文件中进行重定向?

具体来说,我想将/j/e 转发到/javascripts/embed.js

目前我能想到的唯一方法是创建一个 j 控制器,并使用 e 方法重定向到该控制器。

【问题讨论】:

【参考方案1】:

假设 3 之前的 rails 版本。

您可以创建一个新的RedirectController 或将单个函数隐藏在现有控制器中,以执行以下操作:

map.js_embed '/j/e',
    :controller => :redirect_controller,
    :action => :some_function,
    :path => "embed"

那么你的函数会这样做:

def some_function
  if params[:path]
    redirect_to "/javascripts/#params[:path].js"
  end
end

或用于那种效果的东西。

【讨论】:

【参考方案2】:

在 Rails 4 和 5 中:(感谢@dennis)

get '/stories', to: redirect('/posts')

在 Rails 3 中,您可以在 routes.rb 文件中进行重定向。

match "/posts/github" => redirect("http://github.com/rails.atom")

【讨论】:

见http://guides.rubyonrails.org/routing.html#redirection 谢谢!我还需要在重定向中包含一个 id。对于那些需要它的人 /:id/ 可以在重定向的 url 中引用为 /%id/ ... 在 Rails 4 中,get '/stories', to: redirect('/posts'),如 RoR Guides 中所示。请注意,您不需要创建视图,因为您在路由级别进行重定向。 在 Rails 4.2 中,不推荐在 routes.rb 中使用 to: @AugustinRiedinger 4.2.6 的 RoR 指南另有说明:guides.rubyonrails.org/routing.html#redirection【参考方案3】:

根路径

您可以将根路径重定向到外部网站:

root to: redirect('https://www.lucascaton.com.br/en')

【讨论】:

以上是关于可以在 Rails 中创建此重定向路线吗?的主要内容,如果未能解决你的问题,请参考以下文章

URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单?

Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”

“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”但在本地工作

Facebook 登录消息:“URL 被阻止:此重定向失败,因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。”

乘客(Ruby on Rails)中的301重定向从根域到www子域?

使用 DELETE 而不是 GET 删除后 Rails 重定向