Calling/Executing javascript functions from controller

Hey all,
How can I call a javascript function from my controller?
Is it possible to simply call a javascript function
from directly in the controller WITHOUT needing an AJAX
request to come through via link_to_remote or remote form?

As an example I’ve tried:

class RandomController < ApplicationController
before_filter :login_required, :except => [:index, :initialize]
def index
@session[:mode] = ‘view’
@map = GMap.new(“map”)

render :update do |page|
page.call(“resizeMap”)
end

@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([38.539506, -121.757172],13)
store_location
end
end

This as expected does not work, it spits of the try{blah blah} catch
stuff.
Any help is greatly appreciated!

Russ

Is the “resizeMap” function in the controller helper? If so try:

render :update do |page|
page.resizeMap
end

Greg wrote:

Is the “resizeMap” function in the controller helper? If so try:

render :update do |page|
page.resizeMap
end

Take a look here:

http://lists.rubyonrails.org/pipermail/rails/2006-April/029919.html

… or Google “inline RJS”.

Greg,
Thanks for the suggestion - however I have tried this before and had the
following problem:

resizeMap() is a function in mapscript.js (an external js file) that is
in
the public/javascripts folder and included in the generated html page.

The code uses the Ym4r plugin for Google Maps/Yahoo Maps
in my controller i have:

class RandomController < ApplicationController
before_filter :login_required, :except => [:index, :initialize]
def index
@session[:mode] = ‘view’
@map = GMap.new(“map”)

render :update do |page|
  page.call("resizeMap")
end

@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([38.539506, -121.757172],13)
store_location

end
end

But I end up with this as the output for the generated index.html:

try {
resizeMap();
} catch (e) { alert(‘RJS error:\n\n’ + e.toString());
alert(‘resizeMap();’); throw e }

How can I actually call my javascript function and not end up with this?

Thanks,
Russ