2014-02-17 77 views
0

在SO中有一些這樣的問題,但沒有解決我的具體問題,所以我發佈了它。沒有出現在顯示屏中的Flash訊息

我試圖在我的rails項目中顯示成功和錯誤的flash通知,但他們沒有顯示,我不知道爲什麼。

class CheckinsController < ApplicationController 
    def index 
    @checkins = Checkin.all 
    @checkin = Checkin.new 

    end 

    def create 
     @checkin = Checkin.create(params[:checkin]) 
     if @checkin.errors.empty? 
      render json: @checkin, status: 201, 
      :notice => 'Thanks for posting your comments.' 
     else 
      flash[:notice] = "Please enter a name." 
      redirect_to checkins_path 
     end 
    end 
end 

需要注意的是,是的,還有的:noticeflash[:notice]間斷,但它的控制器不打破它的唯一途徑。

我的模型看起來像這一點,是做什麼應該,也就是防止保存,如果在窗體名稱字段爲空:

class Location < ActiveRecord::Base 
    attr_accessible :name, :description 

    has_many :checkins 

    validates :name, presence: true 
end 

而且我有這個在我的application.html.erb文件:

<div id="notice"><%= flash[:notice] %></div> 

從技術上講,這應該工作,它應該顯示錯誤發現時的通知。有什麼我失蹤?

我使用也試過......

<% flash.each do |name, msg| -%> 
    <%= content_tag :div, msg, class: name %> 
<% end -%> 

per RoR docs無濟於事。

有一點需要注意的是它也沒有渲染它的CSS。似乎相關,但我無法弄清楚如何。

回答

1

這已經在這裏找到答案:Rails Flash.now not working

基本上你需要調用的方法在視圖中以不同的方式。

flash.now[:notice]

將是正確的調用。

+0

我把這是一個div在我的html.erb文件,但遺憾的是它沒有任何效果。 <%= flash.now [:notice] if flash.now [:notice]%> – PanicBus

+0

嘗試'<%= debug flash%>'看看你是否得到任何輸出。 – muttonlamb