【问题标题】:Devise Invitation does not set password设计邀请未设置密码
【发布时间】:2016-04-01 18:53:14
【问题描述】:

我正在使用 gem Devise Invitable 发送邀请并在我的 Rails 应用中接受邀请。

一旦用户点击接受邀请链接,他就会被重定向到一个页面,他可以在其中按预期设置密码,但是,一旦我提交表单,它只会将我重定向回同一页面以设置密码

我的表格是:

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

这是我提交表单时的服务器日志:

    Started GET "/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)

它似乎没有更新用户的密码。

我尝试将网址更改为user_invitation_path,但无济于事。

我做错了什么?

【问题讨论】:

    标签: ruby-on-rails devise devise-invitable


    【解决方案1】:

    从您的日志中可以清楚地看出,由于某种原因,它没有正确提交。表单使用 GET HTTP 动词提交,而它必须使用 PUT/PATCH HTTP 动词提交,才能调用将设置密码的更新操作。

    请您检查一下invitation_accepted at 字段是否被设置了?您还可以通过开发人员工具检查以纯 html 格式发布表单标签及其内容吗?

    PS:我最好将此添加为评论,但我现在没有足够的声誉点数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多