Ruby on rails 验证电子邮件是否包含其他字段rails
我需要验证用户的电子邮件是否包含其关联的值:Ruby on rails 验证电子邮件是否包含其他字段rails,ruby-on-rails,validation,model,format,Ruby On Rails,Validation,Model,Format,我需要验证用户的电子邮件是否包含其关联的值: class Company << ApplicationRecord validates :name, presence: true has_many :users end class User << ApplicationRecord belongs_to :company validate :email, presence: true end 您可以创建一个。大概是这样的: class User <
class Company << ApplicationRecord
validates :name, presence: true
has_many :users
end
class User << ApplicationRecord
belongs_to :company
validate :email, presence: true
end
您可以创建一个。大概是这样的:
class User << ApplicationRecord
belongs_to :company
validate :email, presence: true
validate :valid_company_email
private
def valid_company_email
unless self.email.match(/\S+@#{self.company.name}\.com/)
errors.add(:email, :invalid) #or replace :invalid with a custom message
end
end
end
class用户试试这个验证电子邮件的格式:=>=/^[\w\d]+@self.company.name+([\w\d]+)+$/
希望它能在内部self.company.name
显示此错误方法缺失:用户未定义的方法“company”(调用“User.c connection”建立连接):class(NoMethodError)
它可以工作!此外,我将验证器移动到app/validators
。谢谢
class User << ApplicationRecord
belongs_to :company
validate :email, presence: true
validate :valid_company_email
private
def valid_company_email
unless self.email.match(/\S+@#{self.company.name}\.com/)
errors.add(:email, :invalid) #or replace :invalid with a custom message
end
end
end