我想添加一个用户注册的invite_code要求。即。除了要求他们指定电子邮件/密码组合之外,我还想要一个额外的字段:invite_code。这是一个临时修复,以便不想要的用户在给定的alpha期间无法登录。
我很困惑,因为Devise没有添加控制器。我对虚拟属性的概念比较熟悉,我突然想到我可以在模型中添加一个:invite_code,然后硬编码一步,说明invite code现在必须等于12345或其他任何值。
这对devise身份验证有意义吗?我该如何从一个合适的rails restful方法来处理这个问题呢?
非常感谢。
发布于 2010-09-14 08:57:57
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.
到用户模型
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
注意:添加:在=>上:创建,因为invite_code只用于创建新用户,而不是用于更新。
https://stackoverflow.com/questions/3704837
复制相似问题