我已經被授權編寫一個函數來驗證下面代碼中的名字和姓氏不一樣。我必須使用ActiveModel :: Validation和ActiveModel :: Errors,如果兩個名稱相同,它應該給出一個錯誤消息「Nope」。驗證Ruby ActiveModel ::驗證和ActiveModel :: Errors設置功能
我很少紅寶石的經驗,但這裏是我的嘗試:
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的錯誤。我相信這可能很簡單,但我會很感激任何幫助。
那麼,有什麼問題? –
問題是如何獲得函數來驗證這兩個名稱是不一樣的,以及如何驗證第一個和第二個名稱的存在? – James
你在使用rails嗎?或者只是ActiveModel?總之,不要錯過姓氏,你可以通過'nil':'Person.new(「James」,nil)' –