0

受信トレイのメッセージ用に削除フォルダーを作成しましたが、ページが空白のままです。「recipient_deleted」というメッセージが表示されます。受信者がメッセージを削除したときのデータベースの値は、列「recipient_deleted」で 1 です。送信者がメッセージを削除すると、メッセージはデータベースから完全に消去され、列「sender_deleted」に 1 が表示されます。

Trash.html:

<% for message in @messages.recipient_deleted %>
4

2 に答える 2

1

私が見るところ、コードは問題ありません。ページが空白で表示されているため、削除フォルダーをレンダリングする必要があります。elsif params削除フォルダーを指す受信トレイ用の を作成します。次に、削除フォルダーのパーシャルをレンダリングします。これでページが表示されるはずです。

変化する:

<% for message in @messages.recipient_deleted %>

<% for message in @messages %>
于 2013-10-23T16:11:56.683 に答える
0

コーネリアス

まず、deleted_messages の下では、これを特定のユーザーに限定していません。

第二に、ユーザー モデルとメッセージ モデル内に関係があるかどうかはわかりませんが、投稿したコードから確認する必要があります。message.rb モデル内に「user_id」フィールドがない場合は、移行によって追加する必要があります。

within app/models/user.rb
has_many :messages

within app/models/message.rb
belongs_to :user

これが重要な理由は、次のコードを記述できるようになるためです。

user.rb内

def deleted_messages
   messages.where(recipient_deleted: 1)
end

def sent_messages
   messages.where(sent_by: self.id)
end

def received_messages
   messages.where(received_by: self.id)
end

関係を定義した後で、ユーザーのメッセージを表示する場合。次のように書くだけです。

<<instance of user>>.messages
eg. current_user.messages
eg. @user.messages
于 2013-10-16T14:55:07.963 に答える