0

我最近在名为“帖子”的列中添加了一个名为“评论”的新字段

我只想显示 Review = false 的帖子。

我正在尝试将正确的范围添加到我的 Posts 模型中来执行此操作。

这是我目前的范围。

  default_scope order: 'posts.created_at DESC'
4

2 回答 2

1
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

只需使用类方法和链范围

于 2013-04-06T04:02:19.953 回答
0

您可以创建一个命名范围:

scope :unreviewed, where(:review => false)
于 2013-04-06T04:03:02.593 回答