2016-04-01 7 views
0

Ich benutze das Juwel Devise Invitable, um Einladungen zu verschicken und sie in meiner Rails App zu akzeptieren.Devise Einladung legt kein Passwort fest

Sobald der Benutzer auf den Link zum Akzeptieren der Einladung klickt, wird er auf eine Seite weitergeleitet, wo er sein Passwort wie erwartet einrichten kann. Sobald ich das Formular abschicke, leitet es mich jedoch einfach zur selben Seite zurück das Passwort

Meine Form ist:

<%= form_for resource, as: resource_name, url: invitation_path(resource_name), 
    html: { method: :put, class: "form-horizontal col-xs-12 col-md-6 col-md-offset-3" } do |f| %> 

    <div class="sheet form-sheet"> 
    <div class="sheet-inner"> 
     <%= f.hidden_field :invitation_token %> 

     <%= f.form_group :password do |f| %> 
     <%= f.label :password, class: "form-label" %> 
     <%= f.password_field :password, autofocus: true, class: "" %> 
     <%= f.error_messages %> 
     <% end %> 

     <%= f.form_group :password do |f| %> 
     <%= f.label :password_confirmation, class: "form-label" %> 
     <%= f.password_field :password_confirmation, class: "" %> 
     <%= f.error_messages %> 
     <% end %> 
    </div> 
    </div> 

    <div class="form-actions text-right"> 
    <%= f.submit "Activate Invite", class: 'btn btn-outline-primary' %> 
    </div> 
    <% end %> 

Dies ist der Server-Log, wenn ich das Formular abschicken:

Started GET "https://stackoverflow.com/users/invitation/accept.14?invitation_token=StRLZtV_B3zEssZ2zKNs" for ::1 at 2016-04-01 23:54:24 +0530 
Processing by Devise::InvitationsController#edit as 
    Parameters: {"invitation_token"=>"StRLZtV_B3zEssZ2zKNs"} 
    User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."deleted_at" IS NULL AND "users"."invitation_token" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["invitation_token", "dc88f68ca78c337de574137225018e35220d911ca9b1d2a50cf9fe6d103f781d"], ["LIMIT", 1]] 
    Rendered devise/invitations/edit.html.erb within layouts/_minimal (2.3ms) 
    Rendered layouts/_navbar.html.erb (0.5ms) 
Completed 200 OK in 351ms (Views: 347.2ms | ActiveRecord: 0.7ms) 

Es scheint nicht, die Verwendung zu aktualisieren das Passwort von r.

Ich habe versucht, die URL zu user_invitation_path ändern, aber ohne Erfolg.

Was mache ich falsch?

Antwort

0

Aus Ihren Protokollen ist klar, dass es aus irgendeinem Grund nicht ordnungsgemäß übermittelt. Das Formular wird mit dem Verb GET HTTP gesendet, während es mit einem HTTP-Verb PUT/PATCH gesendet werden muss, damit es die Aktualisierungsaktion aufruft, bei der das Kennwort festgelegt wird.

Bitte überprüfen Sie, ob das Feld input_accepted at zufällig gesetzt wurde? Können Sie das Formular-Tag und seinen Inhalt auch in reinem HTML-Code veröffentlichen, indem Sie von den Entwicklertools prüfen?

PS: Ich würde das idealerweise als Kommentar hinzufügen, aber dafür habe ich nicht genügend Reputationspunkte.

Verwandte Themen