字符串比较不适用于Ruby

我想比较给出的两个值

 

但这种比较似乎根本不起作用。 我检查了current_user.role.title的值,然后打印出“Test”; 但是当我在html页面中对它进行比较时,这会失败。 我也尝试过

  

但它不起作用!! current.role.title的值作为Varchar存储在数据库中。

为了扩展我的评论,看起来你设法在你的title获得一个尾随空格。 当你尝试时,你得到了-Test -

 Rails.logger.error '-' + current_user.role.title + '-' 

current_user.role.bytes.count是5所以它只是一个普通的空间(或可能是一个标签)而不是一些Unicode混淆。

您可能希望在使用stripstrip!存储数据之前清理数据strip! 并且你想对你已经拥有的任何数据做同样的事情。

最后一次检查是试试这个:

 <% if current_user.role.title.strip == "Test" %> 

尾随空格还解释了为什么您的split方法符合预期:

 role_Array = (current_user.role.title).split if role_Array[0] != "Test" 

只是string.split将拆分(几乎总是)拆分空格,因此role_Array最终看起来像['Test']因为split会抛弃尾随空格。