验证时的奇怪行为:与mongoid的has_many关系

时间:2012-05-04 00:08:16

标签: ruby-on-rails ruby-on-rails-3 mongoid

我有这样的方法

 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 @evento.acampantes.create方法已经在我的数据库中创建了acampante。 这是预期的行为吗?我做错了什么? 在此先感谢并对我的英语表示抱歉

0 个答案:

没有答案