0

次のプライベートメッセージモデルがあります

belongs_to :from_user, class_name: 'User'
belongs_to :to_user, class_name: 'User'
belongs_to :thread, class_name: 'Message', foreign_key: 'parent_message_id'
has_many :replies, class_name: 'Message'
attr_accessible :subject, :body
scope :original_message, where("parent_message_id IS NULL")

メッセージをスレッドとして表示するようにビューをすべて設定しました。下部に簡単な返信フォームを配置したいと考えています。スレッド内の特定のメッセージは、現在のユーザーまたは相手側のユーザーに属している可能性があるため、to_user を設定する最善の方法について完全に頭が固まっています。何かアドバイス?

4

2 に答える 2

0

同様の要件があり、スレッドがクリックされた場所に基づいて返信テキストエリアを移動するための JavaScript を追加しました。

返信では、現在のユーザーが返信している投稿の変数を設定し、投稿の所有者に基づいて to_user を追加できます

フラットな会話 (フォーラムのような) またはrailscasts.comのようなスレッド化された会話の場合、これは機能するはずです。

于 2012-04-05T18:56:27.490 に答える
0

スレッドに 2 人のユーザーしかいない場合、 または のいずれfrom_userto_usercurrent_userであると想定できます。つまり、そうでないcurrent_user方が相手です。など:

orig_msg = @thread.messages.original_message

if orig_msg.from_user == current_user
  other_user = orig_msg.to_user
else
  other_user = orig_msg.from_user
end

または:

other_user = orig_msg.to_user
other_user = orig_msg.from_user unless orig_msg.from_user == current_user

または:

other_user = orig_msg.from_user == current_user ?
               orig_msg.to_usr : orig_msg.from_user
于 2012-04-05T19:06:10.130 に答える