最近、「投稿」という列に「レビュー」という新しいフィールドを追加しました
Review=false の投稿だけを表示したい。
これを行うために、Posts モデルに正しいスコープを追加しようとしています。
これが私が持っている現在の範囲です。
default_scope order: 'posts.created_at DESC'
最近、「投稿」という列に「レビュー」という新しいフィールドを追加しました
Review=false の投稿だけを表示したい。
これを行うために、Posts モデルに正しいスコープを追加しようとしています。
これが私が持っている現在の範囲です。
default_scope order: 'posts.created_at DESC'
Model < ActiveRecord::Base
def self.without_review
where(review: false) # or how ever you have the boolean in your db
end
end
もちろんスペックも
describe Model do
describe "::without_review" do
it 'loads posts without reviews' do
no_review = Model.create(review: false)
Model.create(review: true)
Model.without_reivew.all.should == [no_review]
end
end
end
クラスメソッドとチェーンスコープを使用するだけです
名前付きスコープを作成できます。
scope :unreviewed, where(:review => false)