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

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

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

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

【问题讨论】:

    标签: ruby-on-rails redirect routes


    【解决方案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")
      

      【讨论】:

      【解决方案3】:

      根路径

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        相关资源
        最近更新 更多