我試圖將兩個模型保存到數據庫。重複輸入錯誤
用戶和董事會。
我在控制器中的以下內容:
if params_posted?(:user)
@user = User.new(params[:user].merge :password => generate_random_string)
@board = Board.new(params[:board])
@spec = Spec.new(:birthdate => params[:user][:deliver_on])
@user.spec = @spec
@pref = Pref.new
@board.pref = @pref
if @board.save & @user.save
.
.
.
end
如果信息丟失的董事會仍然得到保存,似乎用戶。該表單顯示正確的錯誤消息,要求用戶更正丟失或無效的信息。
現在,當表單提交一次我得到了以下錯誤:
mysql::Error: Duplicate entry '1000' for key 'PRIMARY': INSERT INTO `boards
我不想爲要保存的電路板,除非用戶保存記錄。我已閱讀有關交易並嘗試過,但該記錄仍保存。
如何防止發生這種重複?
預先感謝您
顯示您的表單代碼和控制器代碼。看起來你是在手動設置ID – fl00r 2011-03-10 12:08:51
我不是一個Ruby on Rails程序員,但是,一般來說,你不能保存用戶,確保沒有失敗(檢查錯誤或你有什麼)然後保存電路板? – 2011-03-10 12:10:49
是的,它是fl00r。我運行代碼來比較幾秒鐘內保存的電路板以捕獲多次提交的表單。所以我設置了id來匹配剛剛保存的板子。 – chell 2011-03-10 12:42:24