3 Stimmen

Ajax-Blitzmeldung in Ruby on Rails

Ich versuche, eine Flash-Nachricht anzuzeigen und sie mit Ajax zu rendern, aber die Nachricht scheint nicht angezeigt zu werden bis ich die Seite aktualisiert habe.

Hier ist meine create.rjs-Datei:

page.insert_html :top, :feed_items, :partial => 'shared/feed_item', :object => @micropost
page.replace_html :user_info, pluralize(current_user.microposts.count, "micropost")
page[:micropost_form].reset
page.replace_html :notice, flash[:notice]
flash.discard

Hier ist der relevante Teil der Layoutansicht meiner Anwendung:

<div id= "notice"><% flash.each do |key, value| %>
   <div class="flash <%= key %>"><%= value %></div>
<% end %></div>

Und hier ist der entsprechende Teil meines Micropost-Controllers:

class MicropostsController < ApplicationController
  before_filter :authenticate, :only => [:create, :destroy]
  before_filter :authorized_user, :only => :destroy

  def create
    @micropost  = current_user.microposts.build(params[:micropost])
    respond_to do |format|
      if @micropost.save
        flash[:success] = "Micropost created!"

        format.html { redirect_to root_path }
        format.js   
      else
        @feed_items = []
        render 'pages/home'
      end  
    end
  end

Warum wird dann die Blitzmeldung nicht sofort angezeigt?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X