ruby-on-rails - 动态路由 rails

标签 ruby-on-rails ruby routes

我想将所有请求重定向到 http://domain.com/blog/category/post给外部博客网址说。 http://blog.domain.com/category/post .

我结束了,做了类似的事情。

match "/blog" => redirect("http://blog.domain.com/"), :via => [:get] 
match "/blog/:section" => redirect("http://blog.domain.com/%{section}"), :via => [:get] 
match "/blog/:section/:subsection" => redirect("http://blog.domain.com/%{section}/%{subsection}"), :via => [:get]
match "/blog/:section/:subsection/:post" => redirect("http://blog.domain.com/%{section}/%{subsection}/%{post}"), :via => [:get]

是否有更通用的解决方案?如何将所有请求重定向到以“/blog”为前缀的 URL 以路由到特定 Controller ,或路由到带有某些参数的 URL?

最佳答案

经过一些研究,我通过做这样的事情实现了它。

    match "/blog(*path)" => redirect(Proc.new { |params, request|
        request_uri = request.instance_variable_get(:@env)['REQUEST_URI']
        split_urls = request_uri.sub(/\/blog/,"|").split("|")
        "http://domain.blog.com/" + split_urls.last
    }), :via => [:get]

关于ruby-on-rails - 动态路由 rails ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24037129/

相关文章:

ruby-on-rails - Heroku 的 Rails、Mongoid 和 Unicorn 配置

ruby-on-rails - 以任意顺序匹配多个 yield

ruby-on-rails - 为什么我无法安装 JSON gem?

ruby-on-rails - ruby 中两个哈希之间的变化

ruby-on-rails - 如何使用 Rails + Mongo 解决 URL 性能缓慢的问题

javascript - 使用 Ajax 真实性 token 在 Rails 中从 Index.js.erb 渲染到 Index.html.erb 时出现问题

ruby - Sinatra 与 EventMachine WebSockets 一起使用是否成功?

ruby-on-rails-3 - Rails 3 路由 : Using 2 dynamic segments in path for one model

testing - Rails 路由和 rspec 测试错误

javascript - Angular Js 将 Controller 链接到路由不起作用