ruby-on-rails – 使用Devise设置beta注册

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用Devise设置beta注册前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近将Devise身份验证系统集成到rails测试应用程序中.测试应用程序只包含一个位于身份验证后面的项目模型/控制器/视图.

我现在正在添加测试版邀请系统,以便只有收到其他用户邀请的用户才能加入该网站.我通过以下方式实现了这个系统:http://railscasts.com/episodes/124-beta-invitations.

我遇到的一个问题是,beta邀请函要求我向用户控制器添加一些逻辑,而这是通过Devise无法完成的.我正在尝试使用Users :: RegistrationsController<创建一个新的注册控制器. Devise :: RegistrationsController基本上与Devise控制器相同,但允许我为beta邀请系统添加一些额外的逻辑. 但是,我不能让这个新的控制器工作(我也在这个新控制器中应该包含的内容方面遇到麻烦).我在路线文件添加了以下内容

resources :registrations

resources :invitations

resources :projects

devise_for :users

devise_scope :user do
get ‘users/sign_up/:invitation_token’ =>
‘registrations#new’
end

我在这个新的注册控制器中添加了什么来模仿原始设计/注册控制器的功能

解决方法

在您的用户模型中,添加验证,检查用户的电子邮件是否位于测试版邀请列表中.

这个SO非常相似:Whitelisting with devise ……我在那里添加了类似的代码,它在这里是相关的:

class User < ActiveRecord::Base
  devise :database_authenticatable,:registerable #etc

  before_validation :beta_invited?

  def beta_invited?
    unless BetaInvite.exists?(:email=>email)
      errors.add :email,"is not on our beta list"  
    end
  end 

end

猜你在找的Ruby相关文章