2012-03-23 68 views
2

我忍不住有一種更好的方式在Rails佈局中對下面的代碼進行編碼。有什麼建議麼?佈局重構

<% if remove_ads_from_page? %> 
    <div class="main-content without-ads"> 
    <%= yield %>  
    </div> 
<% else %> 
    <div class="main-content with-ads"> 
    <%= yield %> 
    </div> 
<% end %> 

回答

1

如何

<div class="main-content <%= remove_ads_from_page? ? 'without' : 'with' %>-ads"> 
    <%= yield %>  
    </div> 
0
<% if remove_ads_from_page? %> 
    <div class="main-content without-ads"> 
<% else %> 
    <div class="main-content with-ads"> 
<% end %> 
    <%= yield %> 
    </div> 

這應該工作。 Rails不關心你的html標籤在if和else子句之間被正確關閉。這只是說,「如果remove_ads_from_page是真的,那麼打印出這個片段,否則,打印出這個片段。」

0

艾略特有幾種方法可以採取邏輯出了軌的看法。其中一個最簡單的方法是使用寶石布店

http://railscasts.com/episodes/286-draper

,你可以做的就是考慮使用HAML清理你的看法另一件事。