【发布时间】:2021-03-25 17:37:17
【问题描述】:
我见过一些类似的问题,但没有一个似乎可以概括我的情况。
对于某些标签,我必须使用与 Ruby 混合的 HTML。我找到了两种方法。
方法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”,它将输出:
<input id="lorem" ipsum dolor sit amet />
有没有人有更好的方法来有条件地包含 HTML 属性?请注意,我知道我可以使用像 text_field_tag 这样的 Rails HTML 帮助程序,但我想找到一个不使用它们的解决方案。
编辑:我计划使用多个 HTML 属性(例如
【问题讨论】:
标签: html ruby-on-rails attributes conditional-statements erb