【问题标题】:rails redirect_to problemrails redirect_to 问题
【发布时间】:2010-11-03 04:47:35
【问题描述】:

我正在开发一个 Rails 应用程序并有一个问题。

在我的 routes.rb 中:

map.connect 'admin', :controller => "/admin/users", :action => "index"

所以当我转到“http://mydomain.com/admin”时,它会重定向到“http://mydomain.com/admin/users/index”。 但是,地址仍为“http://mydomain.com/admin”。 因此,页面中的链接是错误的,因为它们是基于“http://mydomain.com/admin”创建的。

这个问题的解决方法是什么?

山姆

【问题讨论】:

    标签: ruby-on-rails hyperlink routes


    【解决方案1】:

    试试这个:

    map.connect 'admin/:action/:id', :controller => 'admin/users'

    【讨论】:

      【解决方案2】:

      您的代码没有重定向浏览器,它只是设置 /admin 和 /admin/users 来触发相同的操作。

      你可以试试:

      map.connect 'admin', :controller => "/admin/users", :action => "redirect_to_index"
      

      然后在你的控制器中写:

      def redirect_to_index
        redirect_to :action => :index
      end
      

      这将向浏览器发送重定向,使其显示正确的 URL。

      希望有更好的方法只涉及 routes.rb。这个网站可能会有所帮助 -> redirect-routing-plugin-for-rails

      【讨论】:

        【解决方案3】:

        确保页面上的所有同域链接都以 / 开头,并使用完整路径。通常,您应该尽可能使用 Rails 路由方法来生成链接。使用 image_tagstylesheet_link_tag 助手也是如此。

        因此,如果您有指向“privacy.html”的链接,请将其更改为“/privacy.html”,无论您在路由结构中的哪个位置,都应该一切顺利。当您开始将视图代码提取为可重用的部分时,这非常好。

        【讨论】:

          【解决方案4】:

          使用 link_to 和 button_to(在 UrlHelper 中)

          【讨论】:

            猜你喜欢
            • 2023-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-02-21
            • 2017-10-21
            • 2013-11-30
            • 1970-01-01
            相关资源
            最近更新 更多