Dav*_*ave 17 ruby ruby-on-rails invite devise
我想添加一个invite_code要求供用户注册.IE浏览器.除了要求他们指定电子邮件/密码组合,我还想要一个额外的字段:invite_code.这是一个临时修复,以便非通缉用户在给定的alpha期间无法登录.
我很困惑,因为Devise没有添加控制器.我对虚拟属性的概念很熟悉,我觉得我可以在模型中添加:invite_code,然后只需硬编码一步就可以说邀请代码必须等于12345或者其他任何东西.
设计认证是否有意义?我如何从适当的轨道安静的方法接近这个?
非常感谢你.
Lar*_*y K 24
1)除了getter之外,虚拟属性通常还需要一个setter.
最简单的方法是添加
attr_accessor :invite_code
attr_accessible :invite_code # allow invite_code to be set via mass-assignment
# See comment by James, below.
Run Code Online (Sandbox Code Playgroud)
到用户模型
2)我假设Devise想要用户模型进行验证.所以你可以通过添加来停止验证
validates_each :invite_code, :on => :create do |record, attr, value|
record.errors.add attr, "Please enter correct invite code" unless
value && value == "12345"
end
Run Code Online (Sandbox Code Playgroud)
注意:添加:on =>:create,因为invite_code仅用于创建新用户,而不用于更新.
小智 10
试试这个:http://github.com/scambra/devise_invitable
它增加了支持 设计用于通过邮件发送邀请函(它需要进行身份验证),并接受邀请设置密码.
它适用于Devise> = 4.0如果你想使用devise 3.0.x,你必须使用1.2.1或更低版本如果你想使用设计3.1.x,你必须使用1.3.2或更低如果你想使用设计> = 3.2,你必须使用1.6.1或更低......
| 归档时间: |
|
| 查看次数: |
7884 次 |
| 最近记录: |