DBに保存しないモデルを定義したいときってありますよね?
そんなときは↓のようにActiveRecord::Base
、rails5だとApplicationRecord
を継承せずにクラス定義します。
class Book
attr_accessor :title, :price, :page
end
でも「railsの機能のバリデーションのメソッドを使って、バリデーションを使いたいなー」というとき、どこをinclude
すればいいんだろう?ってなりません?
class Book
attr_accessor :title, :price, :page
include ActiveRecord::Validations
include ActiveRecord::Reflection
validates :title, presence: true
validates :price, presence: true
validates :page, presence: true
end
↑のように ActiveRecord::Validations
とActiveRecord::Reflection
をinclude
するとvalid?
が使えるようになります。
book = Book.new
book.price = 567
book.valid?(true)