我正在开发一个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”创建的。
这个问题的解决方案是什么?
萨姆
答案 0 :(得分:1)
试试这个:
map.connect'admin /:action /:id',: controller => '管理员/用户的
答案 1 :(得分:0)
确保页面上的任何同域链接都以/开头,并使用完整路径。通常,您应该使用Rails路由方法在可能的情况下生成链接。使用image_tag
和stylesheet_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