0

我为收件箱消息创建了一个删除文件夹,页面仍然空白。它应该显示消息'recipient_deleted'。当收件人删除邮件时,数据库中的值为“recipient_deleted”列的 1。当发件人删除该邮件时,该邮件将从数据库中完全删除,这将显示“sender_deleted”列的 1。

垃圾.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 回答