加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:06:51 所属栏目:百科 来源:网络整理
导读:我最近将Devise身份验证系统集成到rails测试应用程序中.测试应用程序只包含一个位于身份验证后面的项目模型/控制器/视图. 我现在正在添加测试版邀请系统,以便只有收到其他用户邀请的用户才能加入该网站.我通过以下方式实现了这个系统:http://railscasts.com
我最近将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读