为了让项目的体验变得更加愉快,我希望实现更改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 - 很好的问题。它们实际上与功能相关联。我想要一组成功登录的成功消息。我也想要一个成功的帖子的成功消息。由于他们有不同的措词,这些将是单独的信息。 –
在各自的控制器操作中明确定义它们有什么问题? –