爲了讓項目的體驗變得更加愉快,我希望實現更改Flash消息。Rails 4 Flash消息:隨機消息
除此之外,我還會清理一下我的控制器。現在,我的所有閃存信息都被硬編碼到EntriesController
,這讓事情變得混亂。理想情況下,我想達到兩個目的:
爲移動閃爍的消息:成功:危險和:信息到一個單獨的文件來清理我的控制器(它可能將是必要的運行蘭特在散列上)
調用flash消息類型散列並在其上運行諸如
.shuffle
之類的代碼以選擇隨機消息。
這是如何被理想地實現的?
爲了讓項目的體驗變得更加愉快,我希望實現更改Flash消息。Rails 4 Flash消息:隨機消息
除此之外,我還會清理一下我的控制器。現在,我的所有閃存信息都被硬編碼到EntriesController
,這讓事情變得混亂。理想情況下,我想達到兩個目的:
爲移動閃爍的消息:成功:危險和:信息到一個單獨的文件來清理我的控制器(它可能將是必要的運行蘭特在散列上)
調用flash消息類型散列並在其上運行諸如.shuffle
之類的代碼以選擇隨機消息。
這是如何被理想地實現的?
我建議您爲您的閃爍幫手,他們都儲存在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
我會試試這個 - 謝謝! –
如果您發現它有幫助,請考慮給我的答案upvote並接受答案。 – MilesStanfield
您覺得這有幫助嗎?我花時間寫這個。考慮一個upvote和/或接受的答案plz – MilesStanfield
你想什麼隨機消息使用它們輸出?它們是與對象/功能綁定的,還是僅僅是問候消息? –
@RichPeck - 很好的問題。它們實際上與功能相關聯。我想要一組成功登錄的成功消息。我也想要一個成功的帖子的成功消息。由於他們有不同的措詞,這些將是單獨的信息。 –
在各自的控制器操作中明確定義它們有什麼問題? –