簡體   English   中英

Ruby on Rails:觀察者和flash [:notice]消息嗎?

[英]Ruby on Rails: Observers and flash[:notice] messages?

我正在嘗試向用戶發送即時消息和歡迎通知,如果這是他們第一次發表評論; 基本上是這樣的:

  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

我不確定用戶創建第一個評論后應如何向用戶顯示該即顯消息。 我應該將該Flash消息放入控制器中(是否帶有附加的“ if comment.user.new?”),還是可以更有效地顯示Flash消息?

對我來說,將Flash消息放入方法中似乎不錯。

我的application_helper文件中通常有一個輔助方法,用於檢查Flash和diplay。

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 %>

首先,為什么要觀察評論? 如果您想對新用戶做出反應,為什么不觀察用戶?

要回答您的問題,我肯定會將閃存分配放在您的控制器中,原因是閃存是視圖級別的關注點。

我曾經使用觀察者來發送郵件,但最近只是在控制器中發送了它們。 在這種情況下,這樣做會使您的生活更加簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM