La forma simple en los carriles no puede publicar datos

Yo uso la forma simple en los carriles. Después de enviar los datos. la página siempre vuelve a application_form # new, y los datos no se pueden guardar en db. ¿Por qué?

Iniciar sesión

Started POST "/application_forms" for 127.0.0.1 at 2013-05-25 19:23:28 +0800 Processing by ApplicationFormsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"yypWFcsXbdSVtp3WXUZKvstzHWsV0OOpLoGSxO1ldJ0=", "application_form"=>{"student_name"=>"somebody", ...... ,"application_type"=>"b"}, "commit"=>"Submit"} [1m[35mUser Load (0.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 [1m[36m (0.0ms)[0m [1mbegin transaction[0m [1m[35m (0.0ms)[0m rollback transaction Rendered application_forms/_form.html.erb (24.0ms) Rendered application_forms/new.html.erb within layouts/application (25.0ms) Completed 200 OK in 61ms (Views: 52.0ms | ActiveRecord: 0.0ms) 

Ver

  {:class => 'form-horizontal' } do |f| %> Basic Info   'btn-large btn-primary'%>  

Controlador

  def create @application_form = ApplicationForm.new(params[:application_form]) respond_to do |format| if @application_form.save format.html { redirect_to @application_form, :notice => 'Submit ok.' } else format.html { render :action => "new" } end end end 

Bueno, claramente @application_form.save está fallando. Si tuviera que adivinar, supongo que tiene una validación en su modelo que está fallando. Esto me sucede ocasionalmente cuando escribo un buen modelo, incluidas todas las validaciones que desearé, pero luego estoy empezando a armar un formulario y me olvido de incluir todos los campos que deben estar allí.

Una forma de comprobarlo es abrirse

 rails console 

y prueba algo como esto:

 @application_form = ApplicationForm.new(:student_name => "student") @application_form.save 

Esto hará exactamente lo que su formulario está haciendo, y debería decirle cuál es el problema cuando intenta guardar.

Supongo que también ha olvidado incluir mensajes flash en su archivo de diseño. Por lo general, verá algún tipo de mensaje de error en su flash cuando falla la operación de save . Ya que parece que estás usando Twitter Bootstrap (solo adivinando desde la clase de form-horizontal en tu vista de formulario), asumiendo que usas la gem de twitter-bootstrap-rails , puedes agregar <%= bootstrap_flash %> a cualquiera de tus vistas o su plantilla.

Intereting Posts