0

このリンクは素晴らしいですが、または条件の下で 2 つのアクティブなリレーションを組み合わせた後に active_relation を取得するという問題には対処していません。他のリンクもありますが
、上記の質問に答えるものはありません。andingメソッドは機能し、アクティブな関係を提供しますが、 2つの状態mergeへの道を見つけるのに私の苦境。or私の問題を解明するために、アクティブな関係を出力しないクエリを個別に実行して追加するのではなく、1 つまたは2 つの異なるクエリを作成する必要があるとします。例えば:-

@incoming = Message.incoming_from_my_friends_only(@current_user) # where 'incoming_from_my_friends_only' is a active record query  
@outgoing = Message.outgoing_to_my_friends_only(@current_user) # same here

今、私はこれをしたくありません

@incoming = Message.incoming_from_my_friends_only(@current_user) 
@outgoing = Message.outgoing_to_my_friends_only(@current_user)

@messages = @incoming + @outgoing

これを行うことは問題ではありませんが、さらにアクティブなレコードクエリを実行できるように、結果をアクティブな関係にしたいと思います。

任意のアイデア...または私の問題を回避する方が良いですか??

改訂:-

私はプロフィールを見ていましたが、この質問は非常に重要な質問であることが判明したとしても、コメントではなく、いかなる活動もしていないことがわかりました. マージメソッドを使用した2番目のリンクに示されているように、実行は非常に簡単です、そのようなメソッドは存在しないか、なぜですか??? Railsコミュニティのプロがこの方法を提供するべきではありませんか??? AR

4

1 に答える 1

0

後でor条件の下で 2 つのアクティブな関係を結合する方法を見つけましたが私が探していた答えではありませんでし。私が見つけた答えはこれでした。

# replace the comment part in where by the condition written for incoming_from_my_friends_only and outgoing_to_my_friends_only respectively
@incoming = Message.where("(#incoming_from_my_friends_only(@current_user)) or (outgoing_to_my_friends_only(@current_user))") 
于 2014-11-30T19:07:58.473 に答える