0

所有者と賃借人が通信するためのメッセージング システムがあります。所有者は車両を所有しています。賃貸人に質問がある場合は、メッセージを送信できます。

注意!投稿されたメッセージとともに、新しいディスカッションが自動的に作成されます。

ディスカッションには多くのメッセージがあります。

ディスカッションの構造は次のとおりです: (id, title, vehicle_id, user_id) メッセージの構造は次のとおりです: (id, text, Discussion_id, user_id)

ユーザーから送信されたすべてのメッセージを取得するのは非常に簡単でした。

ユーザークラスで:

has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id"

しかし今、ユーザーのすべての受信メッセージを取得する方法がわかりません- user.received_messages

これは、基本的に、ユーザーに属するすべてのディスカッション (ユーザーがそのディスカッションを作成し、彼に属さないメッセージがある) または彼のビークルに属するディスカッション (他の誰かが作成したもの) に目を通す必要があることを意味します。このディスカッションと Discussion.user_id == Message.user_id)。

誰かがこれで私を助けることができますか? この関連付けクエリの作成方法がわかりません。

前もって感謝します!

4

1 に答える 1

0

:finder_sql関連付けにパラメーターを使用して解決しましたhas_many。アルゴリズムを使用した生のSQLクエリだけです。質問で説明しました。

于 2012-11-16T13:20:19.050 に答える