我有两个模型,User和Account。每个用户可能有一个帐户。has_one更新问题
为用户创建一个帐户工作正常。我的问题是,当我尝试更新帐户时,以前的帐户user_id被取消,并且使用user_id创建新的帐户行。我不希望发生这种情况。我想更新现有的行,并将其更改为帐户。我该怎么做呢?
谢谢。
我有两个模型,User和Account。每个用户可能有一个帐户。has_one更新问题
为用户创建一个帐户工作正常。我的问题是,当我尝试更新帐户时,以前的帐户user_id被取消,并且使用user_id创建新的帐户行。我不希望发生这种情况。我想更新现有的行,并将其更改为帐户。我该怎么做呢?
谢谢。
有了这个代码
@account = @user.account.build(params[:account])
if @account.save
#...
else
#...
end
你正在建设一个新的account
。你需要的是更新
if @account.update_attributes(params[:account])
#...
else
#...
end
既然你没有提供任何代码,您说这是你如何创建一个用户
user = User.create(:name => "bob")
然后你就可以将用户与帐户通过指定USER_ID
account = Account.create(:user_id =>user.id, :status => "not activated")
关联现在让我们说我们想改变账户的状态。我们可以调用更新方法在轨道http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002270这样的:
Account.update(account.id, :status => "activated")
我可以用更多信息更有帮助。
向我们展示一些代码。 – ryeguy 2010-05-10 16:24:36
您能否发布您用于'update'操作的代码? – 2010-05-10 16:25:41
@account = @ user.account.build(params [:account]); 如果@ account.save ... 其他 ... 结束 – 2010-05-10 16:40:39