gpt4 book ai didi

ruby-on-rails - 使用 Devise 设置 Beta 版注册

转载 作者:行者123 更新时间:2023-12-04 06:47:46 25 4
gpt4 key购买 nike

我最近将 Devise 身份验证系统集成到 Rails 测试应用程序中。测试应用程序仅包含位于身份验证后面的项目模型/ Controller / View 。

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

我遇到的一个问题是,beta 邀请要求我向用户 Controller 添加一些逻辑,而您无法通过 Devise 做到这一点。我正在尝试使用 Users::RegistrationsController < Devise::RegistrationsController 创建一个新的注册 Controller ,它基本上与 Devise Controller 相同,但允许我为 beta 邀请系统添加一些额外的逻辑。

但是,我无法让这个新 Controller 工作(而且我也无法确定我应该在这个新 Controller 中包含什么)。我已将以下内容添加到我的路由文件中:

resources :registrations

resources :invitations

resources :projects

devise_for :users

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



我在这个新的注册 Controller 中放了什么来模仿原始设计/注册 Controller 的功能?

最佳答案

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

这个 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-on-rails - 使用 Devise 设置 Beta 版注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com