我忍不住有一種更好的方式在Rails佈局中對下面的代碼進行編碼。有什麼建議麼?佈局重構
<% if remove_ads_from_page? %>
<div class="main-content without-ads">
<%= yield %>
</div>
<% else %>
<div class="main-content with-ads">
<%= yield %>
</div>
<% end %>
我忍不住有一種更好的方式在Rails佈局中對下面的代碼進行編碼。有什麼建議麼?佈局重構
<% if remove_ads_from_page? %>
<div class="main-content without-ads">
<%= yield %>
</div>
<% else %>
<div class="main-content with-ads">
<%= yield %>
</div>
<% end %>
如何
<div class="main-content <%= remove_ads_from_page? ? 'without' : 'with' %>-ads">
<%= yield %>
</div>
<% 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是真的,那麼打印出這個片段,否則,打印出這個片段。」
艾略特有幾種方法可以採取邏輯出了軌的看法。其中一個最簡單的方法是使用寶石布店
http://railscasts.com/episodes/286-draper
,你可以做的就是考慮使用HAML清理你的看法另一件事。