- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个收件箱消息系统,它运行完美。但是我不知道如何为消息实现上一个和下一个功能(因此用户可以在查看一条消息时转到下一条或上一条消息)。这些是在 Internet 上查看消息的正常功能。上一个应该表示消息创建时间上一个。任何帮助将不胜感激。
消息 Controller :
before_filter :set_user
def index
if params[:mailbox] == "sent"
@messages = @user.sent_messages
elsif params[:mailbox] == "inbox"
@messages = @user.received_messages
#elsif params[:mailbox] == "archieved"
# @messages = @user.archived_messages
end
if params[:mailbox] == "unread"
@messages = @user.unread_messages
end
end
def new
@message = Message.new
if params[:reply_to]
@reply_to = User.find_by_user_id(params[:reply_to])
unless @reply_to.nil?
@message.recipient_id = @reply_to.user_id
end
end
end
def create
@message = Message.new(params[:message])
@message.sender_id = @user.id
if @message.save
flash[:notice] = "Message has been sent"
redirect_to user_messages_path(current_user, :mailbox=>:inbox)
else
render :action => :new
end
end
def show
@message = Message.find(params[:id])
@message.readingmessage if @message.recipient == current_user
end
def destroy
@message = Message.find(params[:id])
@message.destroy
flash[:notice] = "Successfully deleted message."
redirect_to user_messages_path(@user, @messages)
end
def delete_multiple
if params[:delete]
params[:delete].each { |id|
@message = Message.find(id)
@message.mark_message_deleted(@message.id,@user.id) unless @message.nil?
}
flash[:notice] = "Messages deleted"
end
redirect_to user_messages_path(@user, @messages)
end
private
def set_user
@user = current_user
end
end
attr_accessible :subject, :body, :sender_id, :recipient_id, :read_at,:sender_deleted,:recipient_deleted
validates_presence_of :subject, :message => "Please enter message title"
belongs_to :sender,
:class_name => 'User',
:foreign_key => 'sender_id'
belongs_to :recipient,
:class_name => 'User',
:foreign_key => 'recipient_id'
# marks a message as deleted by either the sender or the recipient, which ever the user that was passed is.
# When both sender and recipient marks it deleted, it is destroyed.
def mark_message_deleted(id,user_id)
self.sender_deleted = true if self.sender_id == user_id
self.recipient_deleted = true if self.recipient_id == user_id
(self.sender_deleted && self.recipient_deleted) ? self.destroy : self.save!
end
# Read message and if it is read by recipient then mark it is read
def readingmessage
self.read_at ||= Time.now
save
end
# Based on if a message has been read by it's recipient returns true or false.
def read?
self.read_at.nil? ? false : true
end
def self.received_by(user)
where(:recipient_id => user.id)
end
def self.not_recipient_deleted
where("recipient_deleted = ?", false)
end
def self.sent_by(user)
Message.where(:sender_id => user.id)
end
end
<strong>From:</strong>
<%= @message.sender %>
</p>
<p>
<strong>Received:</strong>
<%= @message.created_at.to_s(:long) %>
</p>
<p>
<strong>To:</strong>
<%= @message.recipient %>
</p>
<p>
<strong>Message</strong><br />
<%=h @message.body %>
</p>
<p>
<% if @message.recipient == @user %>
<%= link_to "Reply", new_user_message_path(@user, :reply_to => @message.sender) %>
|
<% end %>
<%= link_to "Inbox", user_messages_path(current_user, :mailbox=>:inbox)%>
|
<%= link_to "Delete", [current_user, @message], :confirm => 'Are you sure you want to delete this message?', :method => :delete %>
</p>
最佳答案
在消息模型中:
def previous(same_recipient = true)
collection = Message.where('id <> ? AND updated_at > ?', self.id, self.updated_at).order('updated_at ASC')
collection.where(recipient_id: self.recipient_id) if same_recipient
collection.first
end
def next(same_recipient = true)
collection = Message.where('id <> ? AND updated_at < ?', self.id, self.updated_at).order('updated_at DESC')
collection.where(recipient_id: self.recipient_id) if same_recipient
collection.first
end
updated_at
列,这有点糟糕(如果我更新旧消息,它会混淆下一个/上一个)。也许您想使用
created_at
列,或您自己的。有了这个,你可以在你看来:
# [...]
<p>
<strong>Message</strong><br />
<%=h @message.body %>
</p>
<p>
<%= link_to 'Next', user_message_path(current_user, @message.next) %>
<%= link_to 'Previous', user_message_path(current_user, @message.previous) %>
</p>
关于ruby-on-rails - 如何为收件箱消息设置上一条/下一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428327/
我正在做一个项目,具体来说是一个网站,其中有一个收件箱或消息,用户可以在其中向其他用户发送消息。 我正在网上查看如何为此创建数据模型,你能帮我解决这个问题吗?我一开始所做的是将他们尝试输入的每条文本或
我目前正在尝试使用 Perl 连接到 gmail 收件箱和 Net::IMAP::Client 使用以下代码 use strict; use warnings; use Net::IMAP::Clie
我想制作一个桌面应用程序,它可以从通过 USB 数据线连接到 PC 的安卓手机读取短信。有没有可能我在网上搜索过任何入门点,有关于通过 android 应用程序阅读短信的教程...有人可以指导我正确的
我有一个用于删除邮件的收件箱代码。 如果我选择一条消息,它将删除所有消息。 我该如何解决这个问题? 这是我的delete_message.php代码: 这是 inbox.php 中带有复选框的代码
这个问题在这里已经有了答案: How to send email in Android ? [duplicate] (3 个答案) 关闭 8 年前。 如何在我们的应用中打开收件箱。 final St
今天我看到了收件箱应用程序。 (来源:cbsistatic.com) 我想知道如何在工具栏(searchButton 的左侧)上制作那个切换按钮。我没有找到对(或者我搜索不多)的引用。 谢谢^^ 最佳
我想使用 Google.GData.Client.dll 阅读我的 Gmail 收件箱。我该如何做到这一点?我想要一个示例程序。 最佳答案 我找到了 GMailAtomFeed // Creat
我有代码可以搜索用户的 Outlook 并根据您在工作表单元格中输入的主题短语回复电子邮件。几天前我确实让它工作了,但现在我似乎无法让它工作(已被删除)。运行后,将持续显示代码行“Set olitem
我正在尝试连接到本地托管的电子邮件 POP3 收件箱并在邮箱中显示电子邮件,但我不断收到错误: Exception in thread "main" javax.mail.MessagingExcep
我想使用 java (SE) 在 MS Outlook (2010) 中阅读我的收件箱,然后将消息/电子邮件移动到另一个文件夹。我曾尝试在网络上搜索,但只找到了许可的解决方案或几年前的帖子。有人对此步
这个问题在这里已经有了答案: launch sms application with an intent (22 个答案) 关闭 7 年前。 我想在我的应用程序中点击一个按钮来打开 Android
我正在运行 Xubuntu 13.04 并安装了最新版本的 libcurl/curl: $ curl -V curl 7.29.0 (i686-pc-linux-gnu) libcurl/7.29.0
我正在做一个项目,用户将首先保存他的 gmail id 和密码,确认后,我将提供一个链接,下次无需输入他的 gmail id 和密码,直接登录 gmail.. 保存的密码将作为参数传递使用 CURL
如何使用 ASP.NET 3.5 和 C# 向 facebook 用户收件箱发送消息?我可以使用 fbAPI.Stream.Publish() 在墙上发布消息,但我需要将消息发送到收件箱,并且必须是个
我正在尝试通过 google 找到的这段代码,但它没有连接到我的 gmail 收件箱。为什么? 我收到此错误消息: --------------processing mails started---
我想将通过 C2DM 收到的消息发送到手机的 SMS 收件箱,并得出结论,这可能是通过让 Android 认为 C2DM 是真正的 SMS 并让它发挥其魔力来实现的。 我已经追踪了相当多的 Andro
我正在尝试从 Gmail 地址(或主题)获取特定电子邮件。我使用 selenium 是因为这个 gmail 帐户无法使用 imaplib。我卡在这里: driver.find_element_by_i
我使用修改自以下代码的一些代码成功连接并阅读我的 Outlook 收件箱:Reading e-mails from Outlook with Python through MAPI 。我想做的是在我的
我从这里得到了一个代码来下载 gmail 收件箱: http://davidwalsh.name/gmail-php-imap use these 2 hostnames $hostname = '{
我需要在 TableView 中显示其他参与者的姓名和图像,就像 Facebook 收件箱一样。我正在使用此 fql 查询来获取收件人。 - (void)readInbox { NSStrin
我是一名优秀的程序员,十分优秀!