ruby-on-rails - ruby rails : Observers and flash[:notice] messages?

标签 ruby-on-rails ruby

如果用户是第一次发表评论,我正在尝试向他们发送即显消息和欢迎通知;基本上,是这样的:

  class CommentObserver < ActiveRecord::Observer
    def after_save(comment)
      if comment.user.new?
        Mailer.deliver_welcome_package(comment)
        flash[:notice] = "Welcome! We just delivered a welcome package to your email"
      end
    end
  end

我不确定在用户创建第一条评论后我应该如何向他们显示该即时消息。我应该将该闪现消息放入 Controller 中(附加一个“if comment.user.new?”)还是有更有效地显示闪现消息的方法?

最佳答案

在我看来,将 flash 消息放入方法中似乎没问题。

我的 application_helper 文件中通常有一个辅助方法来检查闪存和显示。

def show_flash
    [:notice, :error, :warning].collect do |key|
      content_tag(:div, flash[key], :id => key, :class => "flash flash_#{key}") unless flash[key].blank?
    end.join
  end

我有三种类型的消息,通知、警告和错误,这将检查是否设置了其中任何一个,如果设置了则打印出来,如果没有则不打印任何内容。

在我的布局中我有..

<% show_flash %>

关于ruby-on-rails - ruby rails : Observers and flash[:notice] messages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001199/

相关文章:

ruby-on-rails - "Rails Way"的 `update` 是否存在根本缺陷?

ruby-on-rails - 将支付网关(基于activemerchant)与 spree 集成

javascript - Mac 上的 Jekyll 没有管理员访问权限(没有自制软件、Ruby、Rvm、cURL)

ruby - 如果它们不是真正的并行,我能给 Ruby 线程什么用?

ruby-on-rails - 使用 ruby​​ on rails 运行后台任务

javascript - 如何使用 JavaScript 解析 Ruby JSON 字符串

iphone - 如何使用 iOS Keychain 在 iPhone 上存储 OAuth token ?

HTML(或 Rails)按钮代码问题

ruby - 为什么 bundler 使用多个 gem 位置?

ruby - 如何创建 Mongoid "within date range or nil"查询?