繁体   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