每当创建User
对象时,我想要创建一个UserInfo
对象并将其链接到该对象。无论何时创建用户对象,也要创建UserInfo对象
不幸的是这不会产生任何UserInfo
:
class User < ActiveRecord::Base
has_one :user_info
...
def init
self.user_info = user_info
self.save!
end
为什么不叫init
方法?如何达到我的目标?
这是真的,before_create会返回错误。在这种情况下,你必须问:即使UserInfo创建失败(使用after_create),还是想在整个User创建中失败(使用before_create),我是否想要创建User? – Chowlett
实际上我会以另一种方式来完成这些任务。在控制器中**@user.valid? && @ user_info.valid? && @ user.save **。另一种方法是使用** acceptence_nested_attributes ** – Anatoly