2012-01-13 15 views
2

を逆に私がRailsはスコープ

scope :delivered, where(:status => Status::DELIVERED) 
SELECT "orders".* FROM "orders" WHERE "orders"."status" IN ('Pending', 'Partially Prepared') 

今、私は配信の受注を除くすべてを取得するために新しいスコープを追加したいです。

scope :not_delivered, where(:status != Status::DELIVERED) 
SELECT "orders".* FROM "orders" WHERE ('t') 

逆スコープを取得するにはどうすればよいですか?

答えて

2

文字列条件を使用する必要があります。 scope :not_delivered, where('status NOT ?', Status::DELIVERED)

構文については自信がありませんが、私は頻繁にSQLを実行しません。しかし、あなたはその考えを得るべきです。

+1

scope:not_deliveredにする必要があります( 'status!=?'、Status :: DELIVERED) ' – Egor