2010-12-23 50 views
7

環顧文檔,我看不到一個正確的方法來解決這個問題。下面是使用非重構的代碼示例:Rails - 有條件的html屬性

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

現在,這可能是與任何HTML相同屬性的結果是我沒有有效XHMTL由於不流通狀態的情況下,空標記。

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

如何使屬性定義有條件,而不僅僅是它的值。

回答

18

,而不是一個空字符串使用nil

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

4

這個問題的答案,但我想提一提,其中drasbo的辦法是行不通的一個特例。

如果你想使屬性有條件的存在。說檢查input[type=checkbox]的屬性!

檢查屬性的存在使差異和可悲的瀏覽器往往忽略其價值。

不幸的是,它不適用於HAML語法。爲此,您需要回退到標準HTML標記:

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