簡體   English   中英

使用 Rails ERB 的條件 HTML 屬性

[英]Conditional HTML Attribute using Rails ERB

我見過一些類似的問題,但沒有一個似乎可以概括我的情況。

對於某些標簽,我必須將 HTML 與 Ruby 混合使用。 我找到了兩種方法。

方法A

<input id="<%= id %>" />

這在大多數情況下都可以正常工作,但是,如果 id 是空字符串或 nil,那么它仍然會返回 HTML,如下所示:

<input id />

問題:如果變量是空字符串或 nil,我寧願完全排除“id”標簽。

方法B

<input <%= "id=#{id}" unless id.blank? %> />

如果 id 是空字符串,它將返回所需的結果

<input />

問題:但是,如果 id 有多個空格,則會導致問題(這與“值”之類的標簽更相關)。 例如,如果“id”是“lorem ispum dolor sit amet”,則為 output:

<input id="lorem" ipsum dolor sit amet />

有沒有人有更好的方法來有條件地包含 HTML 屬性? 注意,我知道我可以使用像 text_field_tag 這樣的 Rails HTML 助手,但我想找到一個不使用它們的解決方案。

編輯:我計划使用多個 HTML 屬性(例如 <input id="<%= id %>" value="<%= value %>" name="<%= name %>"... />

您可以使用條件的完整結構:

<% unless id.blank? %>
  <input id="<%= id %>" />
<% else %>
  <input />
<% end %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM