Search code examples
ruby-on-railsajaxnotice

flash[:notice] not working when using AJAX in Rails


I've tried different variants of make flash[:notice] working without reload.

Stackoverflow gave me this - How do you handle Rail's flash with Ajax requests?, but I can't find solution, that worked for me.

For example, added to my controller:

def create
  @entry = Entry.new(params[:entry])
  respond_to do |format|
  if @entry.save
    format.html { redirect_to @entry, notice: 'Entry was successfully created.' }
    format.js {
  flash.now[:notice] = 'Website was successfully created.'
 render action: 'create'
}
  else
    format.html { render action: "new" }
    format.js { render action: "new" }
  end
  end
end

create.js

   $('<%= j render @website %>').appendTo('#websites').hide().fadeIn();
  $(".alert").html("<%= escape_javascript(flash[:notice]) %>"); $(".alert").show(300);
  $("#new_website")[0].reset();

but it didn't work.

Can someone tell me understandable full solution, that worked for him ?


Solution

  • Do you make a typo on your js template filename? it should be create.js.erb but not create.js
    and please strictly follow the https://stackoverflow.com/a/8873592/557863 , then make your changes on it.