xpepermint
xpepermint

Reputation: 36273

Ruby on Rails ActiveRecord Validation

I would like to validate attributes in a function like this

class User < ActiveRecord::Base

  validate :check_name( :name )

  def check_name( name )
    ... if name is invalid ...
       self.errors.add( :name, 'Name is invalid')
  end

end

Can you please write the right code? Please explain the functionality why... THX!

Upvotes: 1

Views: 1213

Answers (1)

Simone Carletti
Simone Carletti

Reputation: 176552

class User < ActiveRecord::Base

  validate :check_name

  def check_name
    if name # is invalid ...
      self.errors.add(:name, 'Name is invalid')
    end
  end

end

You can use the validate macro but the method can't accept parameters. You need to fetch the attribute value from inside the method, then validate it.

Replace

if name # is invalid ...

with your own validation logic.

Upvotes: 6

Related Questions