rails redirect_to问题

时间:2009-06-16 00:07:36

标签: ruby-on-rails hyperlink routes

我正在开发一个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 个答案:

答案 0 :(得分:1)

试试这个:

map.connect'admin /:action /:id',: controller => '管理员/用户的

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

使用link_to和button_to(在UrlHelper中)

答案 3 :(得分: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