Rails - 条件 html 属性
Posted
技术标签:
【中文标题】Rails - 条件 html 属性【英文标题】:Rails - conditional html attributes 【发布时间】:2011-05-29 22:04:17 【问题描述】:环顾文档,我看不到解决此问题的正确方法。这是一个使用未重构代码的示例:
= link_to user.name, user, :meta => "#user.public? ? '' : 'nofollow noindex'"
现在这可能与任何 html 属性相同,结果是在条件未通过的情况下,由于空标签,我没有有效的 xhmtl。
<a href='/users/mark' meta=''>Mark</a>
我怎样才能使属性定义有条件,而不仅仅是它的值。
【问题讨论】:
【参考方案1】:使用nil
代替空字符串:
= link_to user.name, user, :meta => user.public? ? nil : 'nofollow noindex'
【讨论】:
【参考方案2】:这个问题已经回答了,但我想提一下drasbo
的方式行不通的特殊情况。
如果你想让属性的存在是有条件的。说input[type=checkbox]
的检查属性!
checked 属性的存在造成了差异,遗憾的是浏览器倾向于忽略它的值。
很遗憾,它不适用于 HAML 语法。为此,您需要回退到标准 HTML 标记:
%form
<input type="checkbox" "#@post.tags.include?("Special Blog")? "checked" : """ />
%button
Click Me
【讨论】:
【参考方案3】:这是一个老问题,但我一直在这样做(示例取自Annie's answer):
<input type="checkbox" <% :checked if @post.tags.include?("Special Blog") %> />
【讨论】:
以上是关于Rails - 条件 html 属性的主要内容,如果未能解决你的问题,请参考以下文章