解決
単純な方法だが。
バリデーションの値を定数で書いてしまえば良い。
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オープンチャットもご利用ください。
メンター受付