Ruby on rails 为什么';设置_id值时,t rails clear(缓存)是否属于_值?

Ruby on rails 为什么';设置_id值时,t rails clear(缓存)是否属于_值?,ruby-on-rails,Ruby On Rails,使用rails时,请考虑: > p = Post.new > p.author = Person.find(1) > p.author_id = 99 > p.author_id => 99 > p.author => #<Person id:1, name: "Person 1"> >p=Post.new >p.author=Person.find(1) >p.author_id=99 >作者身份证 => 99 >p.作者 => #

使用rails时,请考虑:

> p = Post.new
> p.author = Person.find(1)
> p.author_id = 99
> p.author_id
 => 99
> p.author
 => #<Person id:1, name: "Person 1">
>p=Post.new
>p.author=Person.find(1)
>p.author_id=99
>作者身份证
=> 99
>p.作者
=> #

我一直不明白的是:在设置了+author\u id+之后,不清除+author+值背后是否有一个有意识的决定cq或者某种推理?是否有某种插件可以修复此问题?

我个人猜测,从
作者id
访问
作者
需要数据库查找,这可能不是程序员想要的。如果保存记录,它应该更新
作者
。如果我这样做了:>p=Post.new>p.author\u id=99>p.author,那么它也需要数据库查找。我看不出有什么区别。为什么要让事情处于不一致的状态?我不明白你为什么会这样做。选择一种方法或另一种方法来更新文章的作者。保存并重新加载
p
,以便在出于某种原因必须执行上述操作时,使所有内容处于一致状态。