2014-01-10 79 views
-1

這是生態,問題是它應該爲部分模型(主幹)部分添加按鈕,但如果不工作,則說明該變量是可訪問的,但owner.id a是字符串和current_user。 ID是一個數字。生態與聲明,如果

<% if @owner?.id is current_user.id: %> 
    <div class="info-add"> 
     <button class="button secondary tiny radius"> 
      <i class="fi-plus"></i> 
      Add 
     </button> 
    </div> 
<% end %> 
+5

當然,你可以夢想這實際上概括您的問題標題。 –

回答

1

環保使用CoffeeScript的作爲模板語言,在CoffeeScript中,is==成爲JavaScript版本===。 JavaScript的strict equality operator (===)不會執行==將會這樣做的類型轉換,即使'6' == 6爲真,'6' === 6也是false。

你說:

owner.id一個是字符串,current_user.id是一個數字

所以@owner.id is current_user.id將永遠是假的。

如果您的客戶端代碼生成id作爲一個字符串,然後它被破壞,你應該修復它。如果您的服務器將@owner.id作爲字符串發送,那麼您的服務器已損壞,您應該修復服務器以發送正確的JSON;如果你不能修復服務器代碼,那麼你可以一個parse方法添加到您的模型來爲您解決問題:

parse: function(response) { 
    if(response.id) 
     response.id = +response.id // or parseInt(response.id, 10) if you prefer 
    return response; 
}