2011-09-07 5 views
14

本質的に私は、一連のスコープに適用するノーオペレーションタイプのリレーションを探しています。デバッグ目的のために、私はpublishedスコープをしたいチェーンのみapproved投稿を返すように関わらず、全く何もしない、今Arel(恐らく)を使ってRails 3のクエリに影響を与えないActiveRecordスコープを作るにはどうしたらいいですか?

Post.approved.published.all 

は、私はスコープのチェーンを持っているとしましょうそれらがpublishedであるかどうか。

私は次のような方法で返します:

def self.published 
    # what to return? 
end 

答えて

18

allためpublishedエイリアスを作成し、または追加の条件がchaingedことができるとの関係を返すためにscopedを使用します。

def self.published 
    all 
    #or 
    scoped 
end 

Iスコープを使用すると、all ...

scope :published, all 

か、それはscopedのエイリアスます

scope :published, scoped 
+0

私は間違いなくすべてを探していた、そのように明らかになりました私はそのことを考えていなかった理由はわかりません。 – jakeonrails

+2

これは本当に古いですが、配列ではなくリレーションが必要な場合は、匿名スコープ(Rails 3)を返すために 'scoped'を使用してください。 –

+0

@kardeizはい、これは間違いなく良い方法です、私はこの答えを書いた時点で私はそれを知らなかった。 – meagar

関連する問題