获取登录用户的对象,否则创建

问题描述

| 使用导轨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则不需要。