引用关联对象 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
- 从数据库重新加载记录。
我有两个模型。
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
- 从数据库重新加载记录。