Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.2K
Views
Cómo mostrar los errores del formulario de inicio de sesión de Devise al usar Hotwire Rails

He seguido este video de GoRails para que Devise funcione con hotwire-rails . No sé por qué mis mensajes de error de inicio de sesión no funcionan de la misma manera que en el video. Los mensajes de error funcionan muy bien en el formulario de registro, pero en el formulario de inicio de sesión aparece este error:

 Processing by Devise::SessionsController#create as TURBO_STREAM Parameters: {"authenticity_token"=>"[FILTERED]", "user"=>{"email"=>"elvis@example.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"} Completed 401 Unauthorized in 2ms (ActiveRecord: 0.0ms | Allocations: 406)

Como sugiere Chris en el video, he editado mi inicializador Devise para que se vea así .

Mi paquete.json tiene @hotwired/turbo-rails": "^7.0.0-beta.5 , pero en el código fuente de Chris para el episodio es beta.3 , por lo que ese no parece ser el problema.

¿Que me estoy perdiendo aqui?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Estaba teniendo el mismo problema y resulta que no hay un disparador para navegar. Agregar: turbo_stream a esta línea en initializers/devise.rb lo resolvió para mí:

 Devise.setup do |config| [...] config.navigational_formats = ['*/*', :html, :turbo_stream] [...] end
over 4 years ago · Santiago Trujillo Report

0

Conseguí que esto funcionara unificando todos mis errores/avisos de flash en uno parcial en lugar de tener un aviso de flash parcial y un bloque separado para errores de formulario:

Puse esto en mis layouts/application.rb :

 <%= render "shared/notices" %>

Ese parcial se ve así:

 <% flash.each do |msg_type, message| %> <div class="alert"> <div class="container"> <button class="close" data-dismiss="alert"><span>×</span></button> <%= message %> </div> </div> <% end %>

Entonces, mi form_for en views/devise/sessions/new.html.erb se ve así: <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>

over 4 years ago · Santiago Trujillo Report

0

Mi solución es que no use app/javascript/packs/your_application.js en el diseño de la página de inicio de sesión.

En su lugar, puede escribir un js nuevo como app/javascript/packs/blank.js , en este blank.js , no agregue import "@hotwired/turbo-rails" .

Y use blank.js en el nuevo archivo de diseño app/views/layouts/blank.html.erb sign_in la página de inicio de sesión de Devise, como estos:

 <head> <%= javascript_pack_tag 'blank' %> <%= stylesheet_pack_tag 'blank' %> </head>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!