我有两个用户对象existing_user, current_user
,我应该如何遍历User.attributes.keys
并检查它们是否相等。
答案 0 :(得分:3)
可能是这样的:
class User < ActiveRecord::Base
# ...
# untested, but the logic seems sound.
def equals?(user)
User.attributes.keys.each do |k|
return false unless self[k] == user[k]
end
true
end
end
然后,您可以致电current_user.equals?(existing_user)
。
答案 1 :(得分:0)
这个问题的背景对我来说并不完全清楚。通常当一个人像你一样引用current_user
时,背景是ruby-on-rails,而不仅仅是像主题中所述的红宝石。我猜,您通过外部登录进程(cas,facebook等)获取current_user
,并在内部保留用户表以获取其他属性。
鉴于我的假设是正确的,我建议,识别外部用户模型的一个uniq属性并将其存储在内部用户表中。您可能希望验证此属性的唯一性。进行比较时,限制在外部登录用户和内部保留用户上比较此单个属性。