ruby-on-rails – 使用Rails find_or_initialize_by_email,如何确定是否找到或初始化记录?

在我的一个控制器中,我正在做:

user = User.find_or_initialize_by_email(@omniauth['info']['email'])

然后我需要知道是否找到或初始化了记录.我试过这个:

if user
else
end 

但这不起作用,因为总会有用户.找到或初始化找到或初始化的正确方法是什么?

谢谢

最佳答案
你应该能够坚持使用?:

if user.persisted?

edgeguides.rubyonrails.org关于find_or_initialize_by的说法如下:

The find_or_initialize_by method will work just like find_or_create_by
but it will call new instead of create. This means that a new model
instance will be created in memory but won’t be saved to the database.

转载注明原文:ruby-on-rails – 使用Rails find_or_initialize_by_email,如何确定是否找到或初始化记录? - 代码日志