0
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

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

4

2 回答 2

1

在您的情况下,我会重写current_p帮助程序并直接重定向到本地化页面,而不是尝试与您的 root 一起破解某些内容,因为每个定义的 root 始终指的是 root path /

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和标记/为当前。

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

于 2013-01-31T16:35:17.913 回答
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
于 2013-02-01T12:07:41.947 回答