Ruby on Rails - 如何包含定位在“根:to”上


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

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

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

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

这样,您就可以完全控制您的实现。

感谢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

相关内容

  • 没有找到相关文章

最新更新