可以在 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 设置中列入白名单。”