i cant code
i cant code

Reputation: 343

Rails ActiveRecord - field vallidation

I am new to rails and in my models am doing some field validation and i need some help

  has_many :stats
  validates :name, presence: true, uniqueness: true, length: { minimum: 2 }
  validates :age, presence: true
  validates :title, presence: true, format: { with: ???????????????
    message: "must begin with abc_ and have numbers after" }

I am stuck trying to validate title to be in the format abc_8943578945794

Is this where I should really create a method to validate?

Thanks, Nigel.

Upvotes: 0

Views: 59

Answers (3)

spickermann
spickermann

Reputation: 106792

I would use the following regexp:

with: /\Aabc_\d+\z/

Explanation:

\A    # beginning of the string
abc_  # string prefix you are looking for
\d+   # one or more digits
\z    # end of the string

Upvotes: 1

ogabriel
ogabriel

Reputation: 191

Fernando Almeida's anwers is right, you need a regex to match the expected value, but for the format that "OP" have passed (abc_8943578945794), this seems more suitable:

/^[a-z]{3}_[0-9]{13}$/

The only thing that I'm doing more than his, is setting the number of digits (3) and characters (13) that the string should have.

Upvotes: 1

Fernando Almeida
Fernando Almeida

Reputation: 11

Apparently you're looking for a regular expression to match the title, try this:

with: /^[a-z]+_[0-9]+$/

Upvotes: 1

Related Questions