has_one在更新belongs_to对应项后仍返回nil

时间:2011-05-05 13:00:22

标签: ruby-on-rails

我有一个has_one :designpad的用户模型,一个带belongs_to :user的设计块模型和user_id列。

现在我这样做:

u = User.first
d = Designpad.new
d.user_id = u.id
d.save

d.user # returns the user (== u)
u.designpad # always returns nil, but why?

u.designpad为什么返回nil? u.methods列出了方法designpaddesignpad=,正如预期的那样使用has_one关联。

但是u.designpad只是不会返回预期的设计垫。

1 个答案:

答案 0 :(得分:5)

正如@keymone所说,你的u对象没有重新加载的问题。您也可以稍微重构一下代码:

u = User.first
d = user.create_designpad
# Check:
d.user
#=> u
u.designpad
#=> d