概要
format
詳細
ActiveRecordで、validation時にformatを利用することで、
正規表現によるパラメータチェックを行うことができます。
サンプル
テーブル定義
CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "text" text, "created_at" datetime, "updated_at" datetime );
Validation
class Article < ActiveRecord::Base has_many :comments, dependent: :destroy validates :title, format: { with: /\A\[\w+\].\w+\z/, message: "only allows [Category]Title format" } end
試行
rails console(pry)で試行します。
[1] pry(main)> a = Article.new
=> #<Article id: nil, title: nil, text: nil, created_at: nil, updated_at: nil>
[2] pry(main)> a.title = 'invalid'
=> "invalid"
[3] pry(main)> a.valid?
=> false
[4] pry(main)> a.errors.messages
=> {:title=>["only allows [Category]Title format"]}
[5] pry(main)> a.title = '[SomeCategory]SomeTitle'
=> "[SomeCategory]SomeTitle"
[6] pry(main)> a.valid?
=> true
[7] pry(main)> a.errors.messages
=> {}