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