2015-06-24 4 views
3

У меня есть меню выбора языка, как этот (он переключает текущую страницу на другой язык):Посредник проверка, если страница существует

- 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, даже когда он существует. Что мне не хватает?

ответ

1

Аргумент sitemap.find_resource_by_path является ресурсом путь, а не путь URL-адреса назначения. Поэтому вы должны сделать что-то вроде этого:

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 
Смежные вопросы