LoginSignup
4
4

More than 1 year has passed since last update.

Rails | バリデーションの値を外部から参照できるようにする

Last updated at Posted at 2016-01-07

解決

単純な方法だが。
バリデーションの値を定数で書いてしまえば良い。

class Book < ActiveRecord::Base
  TITLE_MAXIMUM_LENGTH = 100

  validates :title, length: { maximum: TITLE_MAXIMUM_LENGTH }
end

参照

Book::TITLE_MAXIMUM_LENGTH

# => 20

改善

このままでは冗長なので。
定数宣言の返り値を使って、1行で書くようにする。

class Book < ActiveRecord::Base
  validates :title, length: { maximum: TITLE_MAXIMUM_LENGTH = 100 }
end

補足

Book.validators_on(:title) メソッドは配列を返すため。
特定のバリデーションの値を得るのは面倒そうだったので、この方法にした。

何か他の方法があれば教えて下さい。

環境

  • Ruby 2.0.0
  • Rails 4.0.0

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

メンター受付

4
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4