ruby-on-rails – 设计邀请生成accept_invitation_url

ruby-on-rails – 设计邀请生成accept_invitation_url,第1张

概述我正在使用Devise邀请邀请.通常,在邀请电子邮件中会有一个链接,将被邀请者重定向到sign_in页面,这样的一些网址 mywebsite.com/users/invitation/accept?invitation_token=J-azZ8fKtkuAyp2VZWQX 此网址来自invitation_instructions.html: <p><%= link_to 'Accept invit 我正在使用Devise邀请邀请.通常,在邀请电子邮件中会有一个链接,将被邀请者重定向到sign_in页面,这样的一些网址

mywebsite.com/users/invitation/accept?invitation_token=J-azZ8fKtkuAyp2VZWQX

此网址来自invitation_instructions.HTML:

<p><%= link_to 'Accept invitation',accept_invitation_url(@resource,:invitation_token => @token) %></p>

现在我想将控制器中的邀请URL作为Json响应返回,如下所示:

def invite  invitee = User.invite!({:email => email},current_user)  accept_invitation_url = ....  render :Json => accept_invitation_urlend

任何想法如何获得控制器中的accept_invitation_url?谢谢!

解决方法 尝试在控制器中包含url helpers模块:

class MyController < ApplicationController  include DeviseInvitable::Controllers::UrlHelpers  def invite    invitee = User.invite!({:email => email},current_user)    render :Json => accept_invitation_url(invitee,:invitation_token => invitee.token)  endend

可以在here on github找到Devise Invitable Gem的URL Helper模块

好的,默认情况下无法访问原始邀请令牌,因为它是没有访问者的实例变量(source),有两种方法可以解决这个问题.

丑陋的方式,无需修改模型类:

def invite    invitee = User.invite!({:email => email},current_user)    raw_token = invitee.instance_variable_get(:@raw_invitation_token)    render :Json => accept_invitation_url(invitee,:invitation_token => raw_token)  end

干净的方法是,通过向用户模型类添加属性读取器:

# User Modelclass User < ActiveRecord::Base  attr_reader :raw_invitation_token  # rest of the codeend# In your controllerdef invite  invitee = User.invite!({:email => email},current_user)  raw_token = invitee.raw_invitation_token  render :Json => accept_invitation_url(invitee,:invitation_token => raw_token)end

更新(2015年10月16日):

看起来UrlHelper模块已被删除,邀请作为正常路由处理,因此您可以删除包含DeviseInvitable :: Controllers :: UrlHelpers并将accept_invitation_url调用替换为:

Rails.application.routes.url_helpers.accept_invitation_url(被邀请者,:invitation_token => raw_token)

总结

以上是内存溢出为你收集整理的ruby-on-rails – 设计邀请生成accept_invitation_url全部内容,希望文章能够帮你解决ruby-on-rails – 设计邀请生成accept_invitation_url所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存