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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs