2016-09-15 65 views
0

如何在更新屬性以反映更改後發佈或呈現消息? (我在這個任務上找不到任何東西)Rails 4:在發佈消息後更新屬性後

例如:一旦用戶更新票狀態,在評論部分中會發布一條消息,報告「票已關閉」。 (沒有閃光消息,但是一個永久的消息)。

tickets_controller.rb

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

嗨,歡迎來到Stack Overflow。你聽說過「閃光燈」嗎?有谷歌的如何在軌道工程,它會幫助你:) –

+1

@TarynEast:他已經寫道,他不想閃光 –

+0

@ChakreshwarSharma哎呀,錯過了那一點。謝謝:) –

回答

0

你需要存儲的消息中的消息後,請務必清除像session[:close_message] = nil會議數據庫如果你想要它堅持。說前爲有一張票(票模型),並有人關閉它。後端的屬性將更新故障單模型的屬性狀態。

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

如果這是一個Ajax調用,您就可以使用「收票」的消息發送響應數據和Ajax調用的成功回調相應地顯示它的HTML頁面。如果是服務器調用,請刷新頁面並使用Ticket模型中的status屬性創建消息。

你可以使用一些枚舉像

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

如果消息是不通用的,每次都需要更多的定製,更好地創建和整個信息保存爲在相關模型的屬性,沒有必要有枚舉。

+0

謝謝,這似乎是我需要的一個很好的解決方案。 – user4935658

0

您可以使用會話此purspose。

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 

之後diaplay它像

<%= session[:close_message] %> 

的看法,但顯示釋放內存

+0

感謝您的及時迴應。我想知道...有沒有辦法在會話中設置它?我想保留它作爲一個持久的消息,不會因open - > close中的多個更改而改變。 – user4935658

+0

您可以做更多的事情,在參數中傳遞消息,如redirect_to ticket_path,消息:'Ticket has been closed'並將其讀取爲@message = params [:message],然後將其顯示爲視圖 –

+0

但是在參數中傳遞消息並不是一件好事,我建議使用這些類型消息的flash消息 –