我有一个用户模型,想要返回控制器并查看用户配置文件的哪些部分是完整的,哪些部分不是。
所以它会返回一个对象" 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
我是以正确的方式来做这件事的吗?如果没有,你认为最好的
答案 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