我有两个模型,用户和帐户。每个用户可能有一个帐户。
为用户创建帐户工作正常。我的问题是,当我尝试更新帐户时,以前的帐户 user_id 无效,并使用 user_id 创建了一个新帐户行。我不希望这种情况发生。我想使用对帐户的更改来更新现有行。我该怎么做呢?
谢谢。
我有两个模型,用户和帐户。每个用户可能有一个帐户。
为用户创建帐户工作正常。我的问题是,当我尝试更新帐户时,以前的帐户 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")
现在假设我们要更改帐户的状态。我们可以像这样在 rails http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002270中调用更新的方法:
Account.update( account.id, :status => "activated")
我可以为更多信息提供更多帮助。