2013-05-27 165 views
0

我有這樣的代碼:導軌 - 屬性不保存

if request.post? and @user.save 
     @contact.user_id = @user.id 
     @contact.save 
     flash[:notice] = l(:e_user_saved) 
     redirect_to :action => 'list' 
end 

但是,當軌道保存聯繫人信息,user_ID的保持爲空。

當我調試我看到它分配的值,但當它保存它保存爲空。爲什麼???

+0

你的意思是'nil'在'contact'的'user',或兩者兼而有之?你使用的是哪個數據庫?它是否設置爲在記錄創建時自動生成'id'(主鍵)> – lurker

+3

保存返回的是什麼?用'save!'替換它。也許驗證失敗 –

+0

是的,當然! –

回答

1

contact.save可能失敗。你沒有檢查返回值,所以你不知道。

檢查contact.errors散列以查看出了什麼問題。

你或許應該有在ifcontact.save

if @contact.save 
    flash[:notice] = l(:e_user_saved) 
    redirect_to :action => 'list' 
else 
    # some error handling 
    # and redirect somewhere else 
end