3

我有两个用户对象existing_user, current_user,我应该如何遍历User.attributes.keys并检查它们是否相等。

4

2 回答 2

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).

于 2012-09-18T06:20:23.847 回答
0

这个问题的背景对我来说并不完全清楚。通常当一个人提到current_user像你一样时,背景是ruby-on-rails,而不仅仅是主题中所说的ruby。我,您是current_user通过外部登录过程(cas、facebook 等)获得的,并在内部保留一个用户表以获取其他属性。

鉴于我的假设是正确的,我建议识别外部用户模型的一个 uniq 属性并将其存储在您的内部用户表中。您可能想要验证此属性的唯一性。在进行比较时,仅限于比较外部登录用户和内部保留用户的单个属性。

于 2012-09-18T07:03:02.393 回答