2014年10月27日月曜日

ActiveRecordのvalidate条件に変数を使う

ActiveRecordのvalidateはよく使うのですが、
必ずチェックを行いたいとは限らないので、validate条件を設定したりするときに、
その比較条件に変数を使いたかったので調べました。

まずは普通のvalidate
validates :shop_id,
    presence: true

validate条件を使ったとき
validates :shop_id,
    presence: true, if: "shop_flg == '1'"

マジックナンバー使うのは嫌なので変数(定数)に置き換えてみる
SHOP_FLG = '1'

validates :shop_id,
    presence: true, if: "shop_flg == #{SHOP_FLG}"

判定を文字列にするので、普通に#{}で変数を囲めば実現できるようです。


参考URL
http://www.techscore.com/tech/Ruby/Rails/model/validation/4

0 件のコメント:

コメントを投稿