如何在`root:to`上包含locate

时间:2013-01-31 16:12:07

标签: ruby-on-rails ruby ruby-on-rails-3 routes root

root :to => 'StaticPages#index'

返回http://localhost:3000/

但是,我想始终在根目录中显示完整路径,因为我正在使用路径进行布局。我需要我的根始终是:

http://localhost:3000/en/home

有谁知道如何实现它?

编辑 - 原因:我正在突出显示当前页面。

link:
<%=  link_to (t 'nav.home'), home_path, id: current_p(home_path) %>

helper:
def current_p(path)
  "current" if current_page?(path)
end

在页面之间导航时,它可以正常工作。但是,它永远不会突出显示主页,因为没有路径。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

在您的情况下,我会重写current_p帮助程序并直接重定向到本地化页面,而不是尝试与您的root一起破解某些内容,因为root per definition始终指的是根路径{{1} }。

/

这会将def current_p(path) paths_to_match = path =~ /\/\w{2}\/home$/ ? ['/', home_path] : [path] current = nil paths_to_match.each do |path_to_match| current = 'current' if current_page?(path_to_match) end current end /(some locale)/home标记为当前。

像这样,您可以完全控制您的实施。

答案 1 :(得分:0)

感谢Beat Richartz指出了正确的方向。他提供的代码解决了这个问题,但是我将在这里注册我已经实现的解决方案。

def current_p(path)
  if path == home_path
    'current' if current_page?(path) || current_page?('/')
  else
    'current' if current_page?(path)
  end
end