Ruby on rails 视图中if条件的最佳使用?

Ruby on rails 视图中if条件的最佳使用?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,Ruby On Rails 3.1,设想/目标是: 当访问者在主页上时,头部导航中的链接是:“别墅”、“公寓”、“B&B” 当访客在国家/地区页面(例如:en/italy)时,头部导航中的链接是:“意大利别墅”、“意大利公寓”、“意大利B&B酒店” 当访问者位于区域页面(例如:en/italy/tuscany)时,头部导航中的链接是:“tuscany别墅”、“tuscany公寓”、“tuscany B&B酒店” 这是我的代码: %ul.dropdown-menu.span3 - if @country.present? %l

设想/目标是:

当访问者在主页上时,头部导航中的链接是:“别墅”、“公寓”、“B&B” 当访客在国家/地区页面(例如:en/italy)时,头部导航中的链接是:“意大利别墅”、“意大利公寓”、“意大利B&B酒店” 当访问者位于区域页面(例如:en/italy/tuscany)时,头部导航中的链接是:“tuscany别墅”、“tuscany公寓”、“tuscany B&B酒店”

这是我的代码:

%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导航部分,因为@country也已设置


我怎样才能解决这个问题

如果您只想在没有
@地区
菜单的情况下显示
@国家
菜单,您可以尝试使用
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