0

我正在开发一个 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 ”创建的。

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

山姆

4

4 回答 4

1

试试这个:

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

于 2009-06-16T00:25:51.137 回答
0

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

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

于 2009-06-16T01:34:06.077 回答
0

使用 link_to 和 button_to (在UrlHelper中)

于 2009-06-16T07:25:55.753 回答
0

您的代码没有重定向浏览器,它只是设置 /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

于 2009-06-16T13:43:31.417 回答