我有这样的方法
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
。
这是预期的行为吗?我做错了什么?
在此先感谢并对我的英语表示抱歉