2010-12-04 3 views

答えて

3

scope_outプラグインはRails3と互換性がありません。

プラグインの説明から判断すると、今は廃止されている可能性があります。新しいActiveRelation構文hereについて

class MessageCopy < ActiveRecord::Base 
    ... 
    scope :deleted, where(:deleted => true) 
    scope :not_deleted, where("deleted IS NULL OR deleted = ?", false) 
end 

詳細情報:代わりに、あなたにそれらのスコープを書くことができます。

あなたは、この使用して、生のARELを書くことができるだけでなくオブジェクト:

where(arel_table[:deleted].eq(nil).or(arel_table[:deleted].eq(false))) 

私は標準ARELを強化するためにMetaWhereと呼ばれる新しい宝石を使用してきました。それはあなたのようにnot_deletedを書いてみましょうになります。あなたがRailsの3.1を使用している場合は、MetaWhereに後継者を試してみる

scope :not_deleted, where({ :deleted => nil } | { :deleted => false }) 

あなたは `スコープがない場所を指摘してとても親切だろうSqueel

scope :not_deleted, where{ (deleted == nil) | (deleted == false) } 
+0

と呼ばれます.or(scope) 'の構文はどこから来ますか? – clyfe

+0

@clyfeあなたはそれを言いました、MetaWhereはそれを追加しているかもしれません。私は答えを更新します。 –

関連する問題

 関連する問題