が含まれていることの価値が協会の含まれています。私は、ユーザーの前にその会社の名前は、例えば、その電子メールの内容を保存されていることを必要とする検証は、私は、そのユーザーの電子メールを検証する必要がある他のフィールドのレール
class Company << ApplicationRecord
validates :name, presence: true
has_many :users
end
class User << ApplicationRecord
belongs_to :company
validate :email, presence: true
end
。会社の名前がある場合
は:
を私は5.0
アップデートのRailsを使用しています:fedex
、ユーザーの電子メールがなければならないmrlewが言っ
として、私はバリデータを書きます方法として、私はapp/validator
に次のように書いた:
#User model
class User << ApplicationRecord
belongs_to :company
validate :email, presence: true
validates_with UserEmailValidator
end
#Validator
# app/validator/user_email_validator.rb
class UserEmailValidator < ActiveModel::Validator
def validate(record)
unless record.email =~ /\A[\w+\-.][email protected]#{record.company.name}\z/i
record.errors[:email] << "invalid email"
end
end
end
これを 'validates_format_of:email、:=/^ [\ w \ d] + @ self.company.name +(。[\ w \ d] +)+ $ /'それを試してみてください。 – uzaif
'self.company.name'を補間する' method_missing ':未定義のメソッド' company 'for user(接続を確立するための 'User.c onnection'を呼び出します):Class(NoMethodError)' –