引用关联对象 Returns 无

Referencing Associated Object Returns Nil

我有两个模型。

class User < ActiveRecord::Base
  has_one :message
end

class Message < ActiveRecord::Base
  belongs_to :user
end

如果我创建了一个关联 Message 的用户,我删除了该消息并创建了一个新消息,例如 user.message returns 无。例如。

user = User.create

message = Message.create(user_id: user.id)

Message.where(user_id: user.id).destroy_all

Message.create(user_id: user.id)

# Now if I call this below, it always returns nil
user.message

为什么会出现这种情况? Rails 3 不应该接受那个改变吗?我该如何解决这个问题?

在执行 user.message 之前再次加载对象,例如 user.reload

reload - 从数据库重新加载记录。