Reputation: 2612
How can I validate the uniqueness of a full name in 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
When I run rspec the test fails with this error.
1) User has a first name
Failure/Error: before { @user = FactoryGirl.create(:user) }
NoMethodError:
undefined method `text?' for nil:NilClass
Upvotes: 0
Views: 295
Reputation: 5588
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
Upvotes: 1