【发布时间】:2011-01-17 09:58:19
【问题描述】:
我有一个模型 user.rb(它是一个 ActiveRecord::Base,不确定它是否与讨论相关)
在某些视图中,我通过以下方式比较两个用户:
<% if current_user == user %>
结果是不确定的(有时结果为真,有时为假),我不知道为什么。
如果我切换到
<% if current_user.id == user.id %>
它按预期工作。但是我需要处理用户可以为空的情况。
我的问题是,这里发生了什么?
为什么 user1 == user2 在这里失败了?
我应该覆盖 == 还是
我是否应该使用其他方法,例如 equal?、=== 或 eql?
user.rb 是一个 ActiveRecord::Base 意味着 == 默认情况下不应该已经比较了 id 字段吗?
【问题讨论】:
标签: ruby-on-rails ruby