如何解决获取登录用户的对象,否则创建
| 使用导轨3: 在控制器中,我想为登录用户找到一个对象,如果存在,我想使用该对象,否则我想为该用户创建一个新对象,我该怎么做?myObj = myObj.find(current_user.id)
如何检查对象是否存在?是否存在myObj.nil或myObj.exists?
解决方法
if myObj
myObj.find(current_user.id)
end
只有存在myObj
时,run2ѭ才会运行。
编辑:你也可以
if !myObj
myObj = ...
end
myObj.find(current_user.id)
如果不存在,将创建myObj
,然后运行myObj.find(current_user.id)
编辑
您应该使用此:
myObj.find_or_create(current_user.id)
假设myObj是一个ActiveRecord(数据库模型)对象。
,Ruby对象有零吗?方法。您可以像myObj.nil这样检查它是否存在?甚至只是myObj
,完成此操作的方法是将has_many关系添加到User对象,以便可以通过以下方式获取它们:
current_user.myObjs
如果模型不是直接连接而是通过其他对象连接,则可以添加:
has_many:myObjs,:through =>:another_object
如果用户属于某个帐户,并且该帐户具有许多myObjs对象,则将是这种情况,但是如果myObjs属于用户且用户has_many myObjs则不需要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。