2016-01-07 107 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