我有這樣的代碼Ruby和Rails:視圖中的語句修飾符?
<% if approved %>
<td>Flow Number</td>
<% end %>
,我想縮短使用語句修飾。當然,我可以使用
<%="<td>Flow Number</td>" if approved -%>
但有一個較短的方法嗎?我也想用引號取得標記。
我有這樣的代碼Ruby和Rails:視圖中的語句修飾符?
<% if approved %>
<td>Flow Number</td>
<% end %>
,我想縮短使用語句修飾。當然,我可以使用
<%="<td>Flow Number</td>" if approved -%>
但有一個較短的方法嗎?我也想用引號取得標記。
你可以使用「content_tag」,這實際上不是短,但可能會更吸引人,保持HTML出你的紅寶石塊:
<%= content_tag :td, "Flow Number" if approved %>
否則,你可能會考慮寫一個幫手 - 這如果您需要在整個頁面(或多頁)中重複使用類似的邏輯,可能會很有吸引力。
總是對新東西感興趣,即使我最終決定它是垃圾。我會檢查出來的,謝謝你。 – 2009-08-06 14:20:59
是的,我認爲在內部使用content_tag的輔助方法是最好的簡短方法。使用一個輔助方法 ,你也可能會產生像這樣所需的輸出:
# in view helper
def show_if(condition, wrapper_tag)
condition ? content_tag(wrapper_tag, yield) : ''
end
# in view
<%= show_if(approved, :td) {'Flow Number'} %>
或
# in view helper
def show_if(condition)
condition ? yield : ''
end
# in view
<% show_if(approved) do %>
<td>Flow Number</td>
<% end %>
我喜歡一個很好的通用方式這最後的方法來顯示或隱藏基於整個塊一個條件。希望有所幫助!
謝謝你,尼爾。我正在尋找更多的選擇。我將不得不多看看content_tag。我們用它將頁面中的內容插入到模板中,但不以您在此處使用的方式插入。可能會很好。 – 2009-08-06 09:19:17
哎呀,我的意思是我們使用content_for。我不知道content_tag,這很好。 – 2009-08-06 09:43:54