Rails : Return 一个显示用户个人资料完整性的对象

Rails : Return an object to show user's profile completeness

我有一个用户模型,想 return 到控制器并查看用户配置文件的哪些部分完整,哪些部分不完整。

所以它会 return 例如一个对象 "profile_completeness" 可以像这样使用:

@user.profile_completeness.personal_info

如果配置文件的特定部分已填充,则为真。

我尝试了什么:

def profile_completeness
    if self.name.present?  && self.email.present?
        profile_completeness.personal_info = true
    end
    return profile_completeness
end

我收到错误:

 SystemStackError: stack level too deep

我这样做的方式正确吗?如果没有,你认为什么是最好的

您不能调用 set the .personal_info=true 方法本身。在这种情况下,我只会使用 Hashes.

def profile_completeness
  ret = Hash.new
  if self.name.present?  && self.email.present?
    ret[:personal_info] = true
  end
  ret
end

或者更好的是,我更喜欢每个 'completeness' 部分的不同方法:

def personal_info_complete?
  ....
end