Postgresql 当记录存在时,按-id=nil查找或创建
我正在尝试使用ActiveRecord的Postgresql 当记录存在时,按-id=nil查找或创建,postgresql,ruby-on-rails-4,activerecord,Postgresql,Ruby On Rails 4,Activerecord,我正在尝试使用ActiveRecord的find\u或\u create\u by方法,我需要返回记录的ID。当此方法创建新记录时,会发生这种情况。但是,如果记录已经存在,则ID(以及在中创建的列和在中更新的列)为nil。所有其他数据都返回得很好。为什么会这样?我可以在数据库中看到它,它有一个ID。当我使用find\u by获取记录时,会返回ID。这是一个bug还是我遗漏了什么?我知道这是一个老问题,但我也遇到了同样的问题,这是一个非常简单的用户错误 如果未找到所选属性的持久化对象,则对象的id
find\u或\u create\u by
方法,我需要返回记录的ID。当此方法创建新记录时,会发生这种情况。但是,如果记录已经存在,则ID(以及在中创建的列和在
中更新的列)为nil
。所有其他数据都返回得很好。为什么会这样?我可以在数据库中看到它,它有一个ID。当我使用find\u by
获取记录时,会返回ID。这是一个bug还是我遗漏了什么?我知道这是一个老问题,但我也遇到了同样的问题,这是一个非常简单的用户错误
如果未找到所选属性的持久化对象,则对象的id
将为nil
,但无法完全创建(初始化并保存到数据库),因为它未通过验证
TLDR;如果您使用模型。通过(属性)
查找或创建对象,最后得到一个id为nil
的对象,检查该对象上的错误,调整属性,并愉快地编码。您能显示控制台输出吗?这不应该发生。