railsのdefault_scopeとunscoped
DBの論理削除*1を使う場合、default_scopeを使うと便利。
論理削除ではないが、簡単な例を下記に書いておく。
default_scope
default_scopeをこのように定義しておく。
class Book < ActiveRecord:Base default_scope where(:R18 => false) end
すると、
Book.create(:title => "コミック快楽天 2011年 07月号", :price => 380, :R18 => true) Book.all # => []
R18な本はallで出なくなります。
unscoped
一覧を出したい場合は
Book.unscoped.all #=> [#<Book id: 1, title: "コミック快楽天 2011年 07月号", price: 380, R18: true)]
これでR18な本も晒せます。
*1:分からない方はググってください