【Ruby on Rails】で特定の条件でバリデーションをする方法

こんにちは、nishi_talk(@nishi_talk)です。
Railsで特定の条件でバリデーションをする方法をご紹介しますね!

やりたいこと

特定の投稿があった場合にバリデーションが機能するように設定する。
投稿するモデルだpostだった場合、model/post.rbを編集します。
validates :fix_monthly_id, presence: true, if: :publish_fix?

def publish_fix?
  is_fix == true
end
ある投稿に対して、is_fixのフラグが立つようにしている。
その場合は、fix_monthly_idが空の場合、エラーが表示されるように設定している。