【问题标题】:Rails - conditional html attributesRails - 条件 html 属性
【发布时间】: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>

我怎样才能使属性定义有条件,而不仅仅是它的值。

【问题讨论】:

    标签: html ruby-on-rails conditional


    【解决方案1】:

    使用nil 代替空字符串:

    = link_to user.name, user, :meta =&gt; 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") %> />
        

        【讨论】:

          猜你喜欢
          • 2021-03-25
          • 1970-01-01
          • 2012-11-26
          • 2023-03-15
          • 2018-01-24
          • 2011-12-25
          • 2016-04-29
          • 1970-01-01
          相关资源
          最近更新 更多