如何將下面的代碼轉換爲後者?可以使用條件並在Ruby中的單行循環?
<div id="faqs">
<% if @faqs.length > 0 %>
<% @faqs.each do |faq| %>
<div class="faq">
<strong>Q:</strong> <%= faq.question %>
<br />
<strong>A:</strong> <%= faq.answer %>
</div>
<% end %>
<% else %>
<p>No FAQs to display.</p>
<% end %>
</div>
<div id="faqs">
<% @faqs.empty? ? content_tag(:p, "No FAQs to display.") : @faqs.each do |faq| %>
<div class="faq">
<strong>Q:</strong> <%= faq.question %>
<br />
<strong>A:</strong> <%= faq.answer %>
</div>
<% end %>
</div>
我很好奇我是否可以讓後面的代碼工作。即在目前沒有它的唯一要素是content_tag()
不顯示 - 這是由於我沒有使用打印紅寶石標籤(<%= # %>
),但使用起來會dump出來的內容下面的FAQ對象的事實。
我認爲使用puts()
來打印content_tag()
而在ruby標籤內,但沒有奏效。
我試圖尋找這個問題,但並沒有產生任何有用的東西。
這是可以實現的,如果是這樣,它有比是漂亮以外的任何好處?
-1雖然它的工作,這是一個相當醜陋的代碼。從'each'循環讀取返回值? PUH - 萊茲。 –