私は、以下のコードで名と姓が同じでないことを検証する関数を書くことを任されました。ActiveModel::Validation と ActiveModel::Errors を使用する必要があり、2 つの名前が同じ場合は、エラー メッセージ "いいえ" が表示されます。
私はルビーの経験がほとんどありませんが、ここに私の試みがあります:
require 'active_model'
class Person
include ActiveModel::Validations
validate :test
validates_presence_of :first
validates_presence_of :last
def initialize(first, last)
@first = first
@last = last
end
def test
errors.add_to_base("Nope") if @first == @last
end
end
a = Person.new("James", "James")
b = Person.new("James")
そのため、インスタンス化しようとするとエラー メッセージが表示されますb
が、関数に引数がないため、これは単なる Ruby エラーです。これはおそらくかなり単純なことだと思いますが、何か助けていただければ本当に感謝しています。