首页 > 解决方案 > 如何使用 devise_invitable 在现有记录上调用邀请资源

问题描述

我有一个显示所有现有管理员的索引

对于已被邀请但尚未接受邀请的每个管理员,如果需要,我需要能够手动向他们发送新邀请。

或者换句话说,我如何重新邀请已经创建的记录?

我尝试在 devise_invitable wiki 上关注这里

https://github.com/scambra/devise_invitable/wiki/Invite-a-Resource-(or-User)-that-Has-Already-Signed-Up-without-Invitation

但是,我并不完全清楚这是如何工作的。我将上面的代码添加到我的邀请资源中,所以我的邀请控制器中的方法现在看起来像这样:

控制器/invitations_controller.rb

     def invite_resource(&block)
       @admin = Admin.find_by(email: invite_params[:email])
       # @user is an instance or nil
       if @admin && @admin.email != current_admin.email
         # invite! instance method returns a Mail::Message instance
         @admin.invite!(current_admin)
         # return the user instance to match expected return type
         @admin
       else
         # invite! class method returns invitable var, which is a User instance
         resource_class.invite!(invite_params, current_inviter, &block)
       end
     end

然后我试图只为这种方法制作一条路线:

配置/路由.rb

发布“/admin/invitation/invite_resource”=>“invitations#invite_resource”

然后最后在我的管理员索引中,每个管理员都循环通过。对于某些已被邀请但未接受邀请的人。我正在尝试在它们上添加一个看起来像这样的链接

          <%= link_to admin_invitation_invite_resource_path(admin), method: :post do %>
            <p">RESEND INVITE</p>
          <% end %>

我敢肯定,我可能在这里做错了一些事情。但最终索引页面显示此配置。但是当我点击“重新发送邀请”按钮时,我得到了这个结果:

路由错误:未初始化的常量 InvitationsController

我的路线在这里不正确吗?

这里有更理想的方法吗?

标签: ruby-on-railsrubydevise-invitable

解决方案


推荐阅读