Rails - 条件html属性

时间:2010-12-23 10:55:10

标签: html ruby-on-rails conditional

环顾这些文档,我看不出正确的方法。以下是使用未重构代码的示例:

= link_to user.name, user, :meta => "#{user.public? ? '' : 'nofollow noindex'}"

现在这可能与任何html属性相同,结果是我没有有效的xhmtl,因为在没有传递条件的情况下空标记。

<a href='/users/mark' meta=''>Mark</a>

如何使属性定义成为条件,而不仅仅是它的值。

2 个答案:

答案 0 :(得分:18)

使用nil代替空字符串:

= link_to user.name, user, :meta => user.public? ? nil : 'nofollow noindex'

答案 1 :(得分:4)

这个问题已得到解答,但我想提一个drasbo方式不起作用的特殊情况。

如果要使属性存在条件。说input[type=checkbox]的已检查属性!

checked属性的存在会产生差异,遗憾的是浏览器会忽略其值。

不幸的是,它没有HAML语法。为此,您需要回退到标准HTML标记:

%form
  <input type="checkbox" "#{@post.tags.include?("Special Blog")? "checked" : ""}" />
  %button
    Click Me