Ale*_*lex 8 ruby-on-rails ruby-on-rails-plugins devise
我最近将Devise身份验证系统集成到rails测试应用程序中.测试应用程序只包含一个位于身份验证后面的项目模型/控制器/视图.
我现在正在添加测试版邀请系统,以便只有收到其他用户邀请的用户才能加入该网站.我通过以下方式实现了这个系统:http://railscasts.com/episodes/124-beta-invitations.
我遇到的一个问题是beta邀请函要求我向用户控制器添加一些逻辑,这是你无法通过Devise完成的.我正在尝试使用Users :: RegistrationsController <Devise :: RegistrationsController创建一个新的注册控制器,它基本上与Devise控制器相同,但允许我为beta邀请系统添加一些额外的逻辑.
但是,我不能让这个新的控制器工作(我也在这个新控制器中应该包含的内容方面遇到麻烦).我在路线文件中添加了以下内容:
资源:注册
资源:邀请
资源:项目
devise_for:用户
devise_scope:用户确实
得到'users/sign_up /:invitation_token'=>'registrations #new'
结束
我在这个新的注册控制器中添加了什么来模仿原始设计/注册控制器的功能?
Jes*_*ott 11
在您的用户模型中,添加验证,检查用户的电子邮件是否位于测试版邀请列表中.
这个SO非常相似:用设计白名单 ......我在那里添加了类似的代码,它在这里是相关的:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |