这是我的User
模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :token_authenticatable, :confirmable, :timeoutable,
:recoverable, :rememberable, :trackable, :validatable,
:email_regexp => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :confirmed_at, :confirmation_token, :category_ids
validates_uniqueness_of :email, :case_sensitive => false
validates_confirmation_of :password
end
我想要做的是在“激活”帐户上强制存在“category_ids”。
我正在做仅电子邮件注册- 需要注意这一点,因为它是一个两阶段的过程。用户第一次输入他们的电子邮件地址时,他们会收到一封激活电子邮件 - 带有指向Confirmations
控制器的链接。
该视图Confirmations Controller
具有需要验证的其他详细信息。
如果我只是validates_presence_of
在User
模型上进行常规操作,那么当用户最初只提交一个电子邮件地址时,Rails 会失败(我不希望这样做)。
用户应该:
- 请输入电邮地址
- 单击电子邮件中的确认/激活链接
- 填写名称、密码并选择一个类别。
- 提交。
第 3 步,Devise 对 name 和 pw 强制执行 present_of_validation。但不是我的自定义项目称为category
.
我怎么做?
谢谢。