如何在rails 3.2中验证全名的唯一性?
class User < ActiveRecord::Base
attr_accessible :first_name, :last_name
validates :name, :uniqueness => true
def name
[first_name, last_name].join(' ')
end
end
当我运行rspec时,测试失败并出现此错误。
1) User has a first name
Failure/Error: before { @user = FactoryGirl.create(:user) }
NoMethodError:
undefined method `text?' for nil:NilClass
答案 0 :(得分:1)
validates :first_name, :uniqueness => { :scope => :last_name, :message => "name is uniq" }
class Person < ActiveRecord::Base
validates_with GoodnessValidator, :fields => [:first_name, :last_name]
end
class GoodnessValidator < ActiveModel::Validator
def validate(record)
if options[:fields].any?{|field| record.send(field) == "Evil" }
record.errors[:base] << "This person is evil"
end
end
end