This may seen kind of lame but works as far. If anyone knows better
solution - share it please :)
module ActionController
class Base
private
def render_for_text_with_flashes(text = nil, status = nil,
append_response = false) #:nodoc:
result = render_for_text_without_flashes(text, status,
append_response)
if response.content_type == Mime::JS
response.body <<
"$(''messages'').update(''#
{self.instance_variable_get("@template").message_block :flash_types
=>
%w(back confirm error info warn notice), :on =>
MODEL_NAMES_FOR_MB}'');new
Effect.Highlight(''messages''); "
end
result
end
alias_method_chain :render_for_text, :flashes
end
end
On Jul 14, 10:13 am, stevo84
<Blaze...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Hello
>
> I would like to execute specific action rendering something into page
> after each of my ajax calls. In example I would like to update some
> div or display an alert.
>
> How I imagine it could work is as follows
>
> class ApplicationController < ActionController::Base
> after_filter :do_something_after_each_ajax_call
>
> def do_something_after_each_ajax_call
> if request.xml_http_request?
> render :update do |page|
> page << "alert(''doing something!'');
> end
> end
> end
> end
>
> Of course code above will yield with "Can only render or redirect once
> per action". How would You approach this problem?