Ruby on rails Rails Beta版邀请-覆盖设备注册控制器

Ruby on rails Rails Beta版邀请-覆盖设备注册控制器,ruby-on-rails,ruby-on-rails-3,devise,railscasts,invitation,Ruby On Rails,Ruby On Rails 3,Devise,Railscasts,Invitation,我使用Desive(1.4.8)作为我的用户模型,并一直在尝试实现一个简单的beta邀请功能(Rails 3.0.7),这是Ryan Bates提出的 我无法让我的设备模型控制器的[new]方法识别邀请令牌。我怀疑这是因为我没有成功覆盖设备的注册控制器 我假设不使用user_控制器从注册表传递变量,我必须覆盖designe的注册控制器。因此,控制器根文件夹中的my registrations_controller.rb: class RegistrationsController < De

我使用Desive(1.4.8)作为我的用户模型,并一直在尝试实现一个简单的beta邀请功能(Rails 3.0.7),这是Ryan Bates提出的

我无法让我的设备模型控制器的[new]方法识别邀请令牌。我怀疑这是因为我没有成功覆盖设备的注册控制器

我假设不使用user_控制器从注册表传递变量,我必须覆盖designe的注册控制器。因此,控制器根文件夹中的my registrations_controller.rb:

class RegistrationsController < Devise::RegistrationsController
  def new
    super
    @user = User.new(:invitation_token => params[:invitation_token])
    @user.email = @user.invitation.recipient_email if @user.invitation
  end
end
在"controller.rb"中

Mailer.invitation(@invitation, new_user_registration_url+"/#{@invitation.token}").deliver

如何覆盖设备的注册控制器并从设备的新用户表单中成功传递:邀请\u令牌?

如果在控制器中转储参数[:邀请\u令牌],该怎么办?你有情人吗


您应该在路由中使用“registrations#new”,而不是“Desive/registrations#new”

如果您在控制器中转储参数[:邀请函令牌],会怎么样?你有情人吗


你应该在路线中使用“注册新”,而不是“设计/注册新”

经过进一步研究,我发现其他人也遇到了类似的问题:

真正的问题是我试图将一个变量传递给Omniauth的回调方法之一。我不知道该怎么做。作为一种变通方法,我最终使用了一个会话变量,并从Omniauth回调方法中访问了它


不是很优雅,但是很有技巧

经过进一步研究,我发现其他人也遇到了类似的问题:

真正的问题是我试图将一个变量传递给Omniauth的回调方法之一。我不知道该怎么做。作为一种变通方法,我最终使用了一个会话变量,并从Omniauth回调方法中访问了它

不是很优雅,但是很有技巧

Mailer.invitation(@invitation, new_user_registration_url+"/#{@invitation.token}").deliver