2014-01-10 62 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; 
}