2017-04-10 17 views
0

私は、同じ列の倍数のIDを持つDB複数の行から取得するために、(.whereメソッドをオーバライド??)きれいな方法を探していますこんにちはRailsのどこ/ find_all複数のidと同じ列を持つ

例:

# Actual ugly mode 
args = {} 
args[:channel] = common_channel 

args[:writer] = userA 
args[:receiver] = userB 
journalsA = Journal.where args 

args[:writer] = userB 
args[:receiver] = userA 
journalsB = Journal.where args 
# @journals = journalsA + journalsB 

どのように私はこのような何かを行うことができます。同時にwriterreceiveruser(A|B)ポイントが

私は、カスタムSQLラインを使用する必要があるか、目を行うには、いくつかの派手なレールの道を存在しますJournals.where userA: userA, userB: userB, channel:xです。

答えて

1

あなたはあなたが尋ねていることを考えることができると思います.RailsにORクエリを書くことはできますか?答えは「はい」ですが、SQLフラグメントの場合:

Journal.where(channel: common_channel).where('(writer = ? AND receiver = ?) OR (writer = ? AND receiver = ?)', userA, userB, userB, userA) 
関連する問題