Can't get remote_function working on rails 2.3.2

I’ve tried moving the code around in different ways, but so far I
haven’t gotten remote_function to work for me (I’m using Rails 2.3.2 on
my Mac). I want to make an AJAX call when I double-click a word on my
page, and the Javascript function is being called when the ondblclick
event is fired, but nothing happens when it gets to my the “new
Ajax.Request” part of my function. The Rails console doesn’t even show
it as making a call to my controller.

There is a DIV called “definition_box”, so my remote_function call used
to read like this:

<%= remote_function(:update => “definition_box”, :url => { :action =>
:lookup } ) %>

Then I read this
and took that out since supposedly it might be duplicating the reference
to the DIV (here in the view and in the controller), so now it looks
like this:

<%= remote_function(:url => { :action => :lookup } ) %>

As you can see, I’m not even trying to pass the Javascript parameter to
remote_function at the moment. My Javascript function looks like the
following and does show me the alert box:

function lookupWord(t) {

alert(‘moving forward’);

<%= remote_function(:update => “definition_box”, :url => { :action =>
:lookup } ) %>

}

This is what I currently have in my controller:

class HomeController < ApplicationController
def index
end

def lookup()
logger.debug(‘here’)
render :update do |page|
page.replace_html ‘definition_box’, ‘Done!’
end
end
end

There used to be a new line in my routes.rb, but I think if I’m going to
the same controller, that doesn’t change anything, so I commented it
out. Can you tell me why the text in my definition_box DIV is not
changing to “Done!” ???

Hi,

I’m using rails 2.3.2 with jrails/jquery and remote_function works.

Do you have enclosed the remote_function call with

Hope this helps !

Yes, it’s in a script tag that’s up in my node. So just now I
added this line to my routes.rb wondering if it’s related to the issue:

map.connect ‘lookup’, :controller => ‘home’, :action => ‘lookup’

Both before and after adding this line, my Javascript alert box pops up
to let me know it entered the Javascript function that calls my
remote_function, but then my debug statement in the controller action
never spits out anything to the server console!

Thanks for any help…

Gianluca T. wrote:

Hi,

I’m using rails 2.3.2 with jrails/jquery and remote_function works.

Do you have enclosed the remote_function call with

Hope this helps !

On 24 Jun 2009, at 15:16, Naija G. wrote:

remote_function, but then my debug statement in the controller action
never spits out anything to the server console!

You should enclose your code in a CDATA section (

).

Fred

I changed the node to this, but it’s still not reaching my lookup
action in the controller:

  <script type="text/javascript" 

src=“javascripts/prototype.js”>

Frederick C. wrote:

On 24 Jun 2009, at 15:16, Naija G. wrote:

remote_function, but then my debug statement in the controller action
never spits out anything to the server console!

You should enclose your code in a CDATA section (
javascript - When is a CDATA section necessary within a script tag? - Stack Overflow
).

Fred

That worked! So now my DIV text gets changed to this for some reason:

try { Element.update(“definition_box”, “Done!”); } catch (e) {
alert(‘RJS error:\n\n’ + e.toString());
alert(‘Element.update(“definition_box”, “Done!”);’); throw e }

Gianluca T. wrote:

Wait a moment,

I put the javascript tag and remote function not intyo head but just
after my div, so I’m sure that is all right with the DOM…

are you sure you have inserted the correct javascript link tag into head
?

<%= javascript_include_tag :defaults %>

Wait a moment,

I put the javascript tag and remote function not intyo head but just
after my div, so I’m sure that is all right with the DOM…

are you sure you have inserted the correct javascript link tag into head
?

<%= javascript_include_tag :defaults %>

Oh, I got it. I needed to change it to this in the view:

// { :action => :lookup } ) %> //]]>

I remember reading elsewhere that for some reason, having the update
part in both the view and the controller was redundant and caused an
exception like that.

Thanks so much!

Naija G. wrote:

That worked! So now my DIV text gets changed to this for some reason:

try { Element.update(“definition_box”, “Done!”); } catch (e) {
alert(‘RJS error:\n\n’ + e.toString());
alert(‘Element.update(“definition_box”, “Done!”);’); throw e }

Gianluca T. wrote:

Wait a moment,

I put the javascript tag and remote function not intyo head but just
after my div, so I’m sure that is all right with the DOM…

are you sure you have inserted the correct javascript link tag into head
?

<%= javascript_include_tag :defaults %>