2012-03-15 7 views
0

Railsでは、 "この列の値がこの文字列の配列のどの値とも等しくない"というActiveRecordをどう書くか?Railsでは、以下のことが可能ですか?where()列が配列内にありませんか?

.rejectメソッドを.whereに書き換えることで、いくつかのルビロジックをSQLに移行しようとしています。

# old 
SomeModel.all.reject{ |sm| some_array.include? sm.x } # works, but is inefficient 

# new 
SomeModel.where(__________) # what goes here? 

EDIT編集編集

ちなみに私はSQLがINNULL Sを処理する方法を理解していなかったので、私が最初に問題を抱えていました。 Thisですので、よく質問してください。

答えて

2

この点についてはどうですか?

SomeModel.where('sm not in :arr', {arr: some_array}) 
+0

ありがとう、セルジオ。これは、私が 'some_array'から' nil'値を削除するとうまくいきました - 上の質問のEDITに記載されています。 – thewillcole

+0

@theWillCole:あなたは大歓迎です:) –

関連する問題