Rails 4:更新后发布消息的属性

时间:2016-09-15 05:00:02

标签: ruby-on-rails update-attributes

如何在更新属性后发布或呈现消息以反映更改? (我在这个任务上找不到任何东西)

例如:用户更新故障单状态后,评论部分会发布一条消息,报告“故障单已关闭”。 (没有闪光信息,但是永久信息)。

tickets_controller.rb

def open 
   @ticket = Ticket.find(params[:ticket_id])
   @ticket.update_attributes(:ticket_status, "closed")
   redirect_to ticket_path
end

2 个答案:

答案 0 :(得分:0)

您可以将此会话用于此项目。

def open 
   @ticket = Ticket.find(params[:ticket_id])
   @ticket.update_attributes(:ticket_status, "closed")
   session[:close_message] = "Ticket has been closed"
   redirect_to ticket_path
end

在该视频之后,它在视图中

<%= session[:close_message] %>

但请确保在显示消息以释放内存后清除session[:close_message] = nil之类的会话

答案 1 :(得分:0)

如果要保留邮件,则需要将邮件存储在数据库中。比如说 - 有一张票(票证模型),有人关闭它。后端的属性将更新故障单模型的属性状态。

 def update
   tkt = Ticket.where(id: 1)
   tkt.update_attributes(status: 1)
 end  

如果这是一个ajax调用,你可以发送一个响应数据,其中包含“Ticket closed”之类的消息,并在ajax调用的成功回调中的html页面上相应地显示它。如果是服务器调用,请刷新页面并使用Ticket模型中的status属性创建消息。

您可以使用某些枚举,例如

{0 => "Ticket Open", 1 => "Ticket closed", 2 => "Ticket in progress" }

如果消息不是通用的,并且每次需要更多自定义时,最好在相关模型中创建并将整个消息保存为属性,而不需要枚举。