Rails:返回一个对象以显示用户的配置文件完整性

时间:2015-06-21 11:08:11

标签: ruby-on-rails rails-activerecord

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

所以它会返回一个对象" 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

我是以正确的方式来做这件事的吗?如果没有,你认为最好的

1 个答案:

答案 0 :(得分:3)

您无法在方法本身上调用.personal_info = true。在这种情况下,我只使用Hashes

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

或者甚至更好我对每个'完整性'部分更喜欢不同的方法:

def personal_info_complete?
  ....
end