0

私はこのような方法を持っています

 def create
    @evento = Evento.find(params[:evento_id])
    @acampante = @evento.acampantes.create(params[:acampante])
    if not @acampante.senha.eql?(@acampante.conf_senha) 
      flash[:error] = "Passwd didn't match."
      return redirect_to evento_path(@evento)
    end

    respond_to do |format|
      if @acampante.save
        format.html { redirect_to root_path, notice: 'Inscricao realizada com sucesso' }
        format.json { render json: root_path, status: :created, location: root_path }
      else
        format.html { redirect_to @evento, alert: 'Ocorreu um erro. Verifique os dados' }
        format.json { render json: @acampante.errors, status: :unprocessable_entity }
      end
    end
  end

パスワードが一致しなくても、@acampante保存されます。
しかし、私がこれを行うと:

 if not @acampante.senha.eql?(@acampante.conf_senha) 
      flash[:error] = "As senhas nao conferem."
      @acampante.delete #the trick
      return redirect_to evento_path(@evento)
    end

すべてが期待どおりに機能します。
ご覧のとおり、createメソッド from は@evento.acampantes.create既にacampanteデータベースに を作成しています。
これは予想される動作ですか?私は何か間違ったことをしていますか?
事前に感謝し、私の英語について申し訳ありません

4

0 に答える 0