2010-05-10 2 views
4

두 가지 모델, 사용자 및 계정이 있습니다. 각 사용자는 하나의 계정을 가질 수 있습니다.has_one 업데이트 문제

사용자 계정을 만드는 것이 좋습니다. 내 문제는 그 계정을 업데이트하려고하면 이전 계정 user_id가 무효화되고 새 계정 행이 user_id와 함께 만들어집니다. 나는 이런 일이 일어나기를 원하지 않는다. 기존 행을 계정 변경 사항으로 업데이트하려고합니다. 어떻게해야합니까?

감사합니다.

+1

몇 가지 코드를 보여주십시오. – ryeguy

+0

'update' 액션에 사용하고있는 코드를 게시 해 주실 수 있습니까? –

+0

@account = @ user.account.build (params [: account]); 경우 @ 다른 ... ... –

답변

3

. 필요한 것은 업데이트하는 것입니다.

if @account.update_attributes(params[:account]) 
    #... 
else 
    #... 
end 
+0

update_attributes이 상황에서 업데이트보다 더 우아한 끝 ... 분명히 내가이 의견을 내 "허용 솔루션을"손실 – Schneems

+0

좋은 전화 account.save :(안녕 bye points – Schneems

+0

hahah happen = P –

1

당신이 어떤 코드를 제공하지 않았기 때문에이 당신이

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") 

내가 더 많은 정보와 더 도움이 될 수 있습니다. 이 코드

@account = @user.account.build(params[:account]) 
if @account.save 
    #... 
else 
    #... 
end 

account를 구축하고와