私はこのような方法を持っています
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
データベースに を作成しています。
これは予想される動作ですか?私は何か間違ったことをしていますか?
事前に感謝し、私の英語について申し訳ありません