Я пытаюсь сохранить две модели в базе данных.
ПОЛЬЗОВАТЕЛЬ и СОВЕТ.
Я делаю следующее в контроллере:
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
Я не хочу, чтобы запись для досок сохранялась до тех пор, пока пользователь не будет сохранен. Я прочитал о транзакциях и попробовал, но запись все еще была сохранена.
Как я могу остановить это дублирование?
Заранее спасибо