0

Сценария/цель состоит в том:Лучшее использование условий if в представлении?

Когда посетитель находится на главной странице ссылка в головной навигации такова: «Вилла», «Апартаменты», «B & B» Когда посетитель находится на странице страны (Например: en/italy), ссылки на главные навигации: «Виллы Италия», «Апартаменты Италия», «B & B Италия» Когда посетитель находится на странице региона (пример: en/italy/tuscany), ссылки в головном навигации таково: "Вилла Тоскана", "Апартаменты Tuscany", "B & B Tuscany"

Это мой код:

%ul.dropdown-menu.span3 
- if @country.present? 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')} #{@country.name}", country_houses_path(@country) 
    %li.divider 
    %li.nav-header Thema's 
    - @country.tags.each do |a| 
    %li 
     #{link_to a.nav_content, tag_country_houses_path(a.country, a.name).capitalize} 
- if @region.present? && @country.present? 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')} #{@region.name}", country_region_houses_path(@country, @region) 
    %li.divider 
    %li.nav-header Thema's 
    - @region.tags.find_each(:conditions => "active_house = true") do |a| 
    %li 
     #{link_to a.nav_content, tag_country_region_houses_path(@country, @region, a.name)} 
- else 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')}", houses_path 
    %li.divider 

Поэтому хочу, чтобы я понял, когда установлено значение @region, я хочу показать, что часть значения nav @country установлена. Я хочу показать другую часть. Но когда я нахожусь на странице региона (en/italy/tuscany), также отображается часть @country nav, потому что также задана @country.

Как я могу это исправить?

ответ

1

Если то, что вы хотите, чтобы только показать меню @country если нет @region меню, вы можете попробовать с elsif:

%ul.dropdown-menu.span3 
- if @region.present? && @country.present? 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')} #{@region.name}", country_region_houses_path(@country, @region) 
    %li.divider 
    %li.nav-header Thema's 
    - @region.tags.find_each(:conditions => "active_house = true") do |a| 
    %li 
     #{link_to a.nav_content, tag_country_region_houses_path(@country, @region, a.name)} 
- elsif @country.present? 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')} #{@country.name}", country_houses_path(@country) 
    %li.divider 
    %li.nav-header Thema's 
    - @country.tags.each do |a| 
    %li 
     #{link_to a.nav_content, tag_country_houses_path(a.country, a.name).capitalize} 
- else 
    %li 
    %b 
    = link_to "#{t('navigation.nav.houses_all')}", houses_path 
    %li.divider 
+0

спасибо AleX !!!! – Remco