2016-01-07 158 views
0

爲了讓項目的體驗變得更加愉快,我希望實現更改Flash消息。Rails 4 Flash消息:隨機消息

除此之外,我還會清理一下我的控制器。現在,我的所有閃存信息都被硬編碼到EntriesController,這讓事情變得混亂。理想情況下,我想達到兩個目的:

  • 爲移動閃爍的消息:成功:危險和:信息到一個單獨的文件來清理我的控制器(它可能將是必要的運行蘭特在散列上)

  • 調用flash消息類型散列並在其上運行諸如.shuffle之類的代碼以選擇隨機消息。

這是如何被理想地實現的?

+0

你想什麼隨機消息使用它們輸出?它們是與對象/功能綁定的,還是僅僅是問候消息? –

+0

@RichPeck - 很好的問題。它們實際上與功能相關聯。我想要一組成功登錄的成功消息。我也想要一個成功的帖子的成功消息。由於他們有不同的措詞,這些將是單獨的信息。 –

+1

在各自的控制器操作中明確定義它們有什麼問題? –

回答

0

我建議您爲您的閃爍幫手,他們都儲存在en.yml文件,並在您的控制器像這樣與.sample方法

# app/controllers/entries_controller.rb 
include FlashHelpers 
class EntriesController < ApplicationController 
    def index 
    flash_message success_flashes.sample if success? 
    # and so on ... 
    end 
end 

# app/helpers/flash_helpers.rb 
module FlashHelpers 
    def flash_message(message) 
    flash[:message] = message 
    end 

    def success_flashes 
    flash_messages.fetch :success 
    end 

    def danger_flashes 
    flash_messages.fetch :danger 
    end 

    def info_flashes 
    flash_messages.fetch :info 
    end 

    private 

    def flash_messages 
    I18n.translate("flash_messages") 
    end  
end 

# app/views/some_view 
<%= flash[:message] %> 


# config/locales/en.yml 
en: 
    flash_messages: 
    info: 
    - info1 message 
    - info2 message 
    - info3 message 
    danger: 
    - danger1 message 
    - danger2 message 
    - danger3 message 
    success: 
    - success1 message 
    - success2 message 
    - success3 message 
+0

我會試試這個 - 謝謝! –

+0

如果您發現它有幫助,請考慮給我的答案upvote並接受答案。 – MilesStanfield

+0

您覺得這有幫助嗎?我花時間寫這個。考慮一個upvote和/或接受的答案plz – MilesStanfield