Rails でモデルのバリデーションを書くときに if
と unless
を使うときがたまーにあって,そのときに書き方を間違えて undefined method
を出しちゃったりするので,自分用にメモしておく.
RailsGuides
RailsGuides に書かれてるんだからちゃんと読んで!って言われたら何も言えませんw
- 5 Conditional Validation
- 5.1 Using a Symbol with :if and :unless
- 5.2 Using a String with :if and :unless
- 5.3 Using a Proc with :if and :unless
Active Record Validations — Ruby on Rails Guides
メソッドを呼ぶ場合はシンボルで
paid_with_card?
って書きたくなるけど,シンボルで書く.
validates :card_number, presence: true, if: :paid_with_card?
式を書く場合は文字列で
name.nil?
や self.name.nil?
って書きたくなるけど,文字列で書く.
validates :surname, presence: true, if: "name.nil?"
関連エントリー
困ったときに読む一冊
Ruby on Rails 4 アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/11
- メディア: 大型本
- この商品を含むブログ (3件) を見る