在Rails中运行单个验证

squ*_*uil 4 validation model ruby-on-rails

我正在发送朋友邀请函,我希望使用以下方式验证电子邮件地址User.validates_format_of :email,但User.email还有其他一些我并不感兴趣的验证.

那么有没有办法在模型上运行单个验证或检查特定验证是否已经过去(不做 user.errors.include?(validation_message) )?

Mou*_*mir 10

您可以查看gem grouped_validations

class Person < ActiveRecord::Base
  validation_group :name do
    validates_presence_of :first_name
    validates_presence_of :last_name
  end
  validates_presence_of :sex
end
Run Code Online (Sandbox Code Playgroud)

然后你可以在控制器中执行此操作

p = Person.new
p.group_valid?(:name) # => false
p.first_name = 'John'
p.last_name = 'Smith'
p.group_valid?(:name) # => true
Run Code Online (Sandbox Code Playgroud)