重复输入错误

时间:2011-03-10 12:04:01

标签: mysql ruby-on-rails duplicates

我正在尝试将两个模型保存到数据库中。

用户和董事会。

我在控制器中执行以下操作:

 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

除非保存用户,否则我不希望保存电路板的记录。我已阅读有关交易并尝试过但记录仍然保存。

如何阻止此重复发生?

提前谢谢

1 个答案:

答案 0 :(得分:0)

所以你必须先保存用户,然后保存板对象。并使用代表逻辑AND的&&运算符。

if @user.save && @board.save
  ...
end