我有一个这样的语言菜单(它将当前页面切换为另一种语言):
- path = current_page.path.split('/')[1..-1].join('/')
%ul{ role: 'langmenu'}
-if I18n.locale != :en
%li
=link_to 'English', "/en/#{path}"
-if I18n.locale != :sr
%li
=link_to 'Serbian', "/sr/#{path}"
我想仅在目标页面实际存在时显示该语言环境的链接,因为并非所有页面都有翻译。我试过sitemap.find_resource_by_path("/sr/#{path}")
但它总是返回false,即使它存在。我错过了什么?
答案 0 :(得分:1)
sitemap.find_resource_by_path
的参数是资源路径,而不是目标网址路径。所以你必须做这样的事情:
resource_path = current_resource.path.split('/')[1..-1].join('/')
sr_resource_path = sitemap.find_resource_by_path "sr/#{resource_path}"
if sr_resource_path
return sr_resource_path.destination_path
end