Calling a controller action from javascript

Hi all,

I am using the google maps API to perform some geolocation on the
client side. I am able to geocode my users address without any issues.
However after doing this on the front end I would like to goto my
backend and query my DB based on the address. After that I want to
redirect the users to a different page where the query results would
be displayed. Is there a way to achieve this?

I was doing everything on the backend before this and it was working
fine. However there is limit associated with the geolocation API from
Google and the limit is set per IP. Hence I wanted to perform the
geolocation on the client side so that I don’t exceed the limit.

Here is my controller code:

def result

the location parameter comes from the geocoded address on the front

@restaurants = Restaurant.load_results(params[:location])
render :layout => ‘search_results’

But this call never gets redirected to the result.html.erb page

Any help will be really appreciated.


Your view code would be helpful to see.

here is the view code in the result.html.erb

<% restaurants.each do |restaurant| %>

<%= render 'search_result', :restaurant => restaurant%>
<%= link_to 'Order Now', {:controller => "search", :action => "create_order", :id => restaurant}, :class => "order_now_link"%>

Also the JS code in my application.js is :

$(‘searchbutton’).live(‘click’, function() {
var address = $('address_text).val();
geocoder = new google.maps.geocoder();
geocoder.geocode(request:address,callback:function(results,status) {
var lat = results[0];
var lng = results[0].geometry.location.lng().toString();
$.getScript(“search/result.html?location=” + address);
return false;


Oops hit the send button too quickly.

Here is the actual result.html.erb code

<% @restaurants.each do |restaurant| %>

<%= render 'search_result', :restaurant => restaurant%>
<%= link_to 'Order Now', {:controller => "search", :action => "create_order", :id => restaurant}, :class => "order_now_link"%>
<% end %>

Are you using Firebug to see if any Javascript errors are preventing
the call from even ocurring?
Did you see the syntax error in your .js? $('address_text) should be $