say*_*gun 6 validation activerecord ruby-on-rails
是否可以在给定的控制器和操作上运行ActiveRecord验证.
例如,我有user_controller和signup_controller
我只需要在signup_controller #create action上运行密码必需的验证
mar*_*ets 19
您可以使用if条件运行验证:
validates :email, presence: true, if: :validate_email?
Run Code Online (Sandbox Code Playgroud)
现在您需要定义此实例方法(在您的模型中):
def validate_email?
validate_email == 'true' || validate_email == true
end
Run Code Online (Sandbox Code Playgroud)
此validate_email属性可以是模型中的虚拟属性:
attr_accessor :validate_email
Run Code Online (Sandbox Code Playgroud)
现在,您可以根据该虚拟属性执行电子邮件验证.例如, signup_controller#create您可以执行以下操作:
def create
...
@user.validate_email = true
@user.save
...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |