鳩舎

レースしない

Rails named scope デフォルト引数

Rails の named scope にデフォルト引数を与えると便利。

class Book < AR::Base
  scope :published, ->(at = Time.now) {
    where('published_at > ?', at)
  }
end

こうしてデフォルト引数を与えておくと

Book.published # => 現在公開済みの本
Book.published 1.day.ago # => 1日前から公開済みの本

みたいに出来る。