2016-04-01 11 views
0

私はDevise Invitableの宝石を使って招待状を送り、Railsアプリで受け入れています。Devise Invitationはパスワードを設定していません

ユーザーが[招待を承諾]リンクをクリックすると、彼は予想通りにパスワードを設定できるページにリダイレクトされますが、フォームを送信すると、同じページに戻って設定を戻しますパスワード

私の形式は次のとおりです。

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) 

それは使用を更新していないようです:私はフォームを送信する際

<%= 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 %> 

これは、サーバーのログですrのパスワード。

URLをuser_invitation_pathに変更しようとしましたが、利用できません。

私は間違っていますか?

答えて

0

ログからは、何らかの理由で正常に送信されていないことが明らかです。フォームはGET HTTP動詞で送信されますが、PUT/PATCH HTTP動詞を使用して送信してパスワードの設定される更新アクションを呼び出す必要があります。

フィールドで招待状が設定されているかどうか確認できますか?また、開発者用ツールを調べることで、フォームタグとその内容をプレーンHTMLに投稿できますか?

PS:私はこれをコメントとして追加するのが理想的ですが、今は十分な評判ポイントがありません。