Удалить папку, не отображающую сообщений

Я создал папку удаления для обмена сообщениями "Входящие", и страница остается пустой. Он должен отображать сообщения "recipient_deleted". Значение в базе данных, когда получатель удаляет сообщение, равно 1 для столбца "recipient_deleted". Сообщение будет полностью удалено из базы данных, когда отправитель удалит ее также, которая покажет 1 для столбца 'sender_deleted'.

trash.html:

<% for message in @messages.recipient_deleted %>
2 ответа

Из того, что я вижу, код в порядке. Ваша страница отображается пустой, что означает, что вам нужно отобразить вашу папку удаления. Создайте elsif params для вашего почтового ящика, который указывает на папку удаления. Затем выделите частичную папку для удаления. Это должно показать страницу.

Изменить:

<% for message in @messages.recipient_deleted %>

в

<% for message in @messages %>


Cornelius,

Во-первых, в разделе deleted_messages вы не просматриваете это для конкретного пользователя.

Во-вторых, я не уверен, что у вас есть отношения в моделях пользователей и сообщений, но вы должны из кода, который вы опубликовали. Если у вас нет поля user_id в вашей модели message.rb, вы должны добавить его с помощью миграции.

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
</instance>

licensed under cc by-sa 3.0 with attribution.