Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 ?

like image 697
deny7ko Avatar asked Nov 03 '22 19:11

deny7ko


1 Answers

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.

like image 139
raykin Avatar answered Nov 13 '22 21:11

raykin