Passing instance through AJAX

Hi,

I need to pass variable in the search form to an AJAX partial but it doesn't work. please tell me how to pass @groceries to the partial.

{{FORM}}

<% form_remote_tag :url => {:action => :search}, :method => "get" do %> <label for="item_name"></label> <%= text_field_tag("query", params['query'], :size => 20 ) %> <%= submit_tag "Search" %>

{{CONTROLLER}}

    def search   groceries_per_page = 4

      @groceries = Groceries.search params[:query], {:page => params[:page], :per_page => groceries_per_page}

  respond_to do |format|     format.js   end

   if request.xml_http_request?             render :partial => "search", :layout => false       end    end

{{PARTIAL}}

<% if @groceries == nil %>   @groceries is nil <% else %>     <% for groceries in @groceries %> groceries.name    <% end %>

{{search.js.rjs}}

page.replace_html("sgreplace", :partial => "search" )

<% if @groceries == nil %> @groceries is nil <% else %> <% for groceries in @groceries %> <%= groceries.name %> <% end %>

should work

oops

should be <%= @groceries.name %>

of course

The partial is not my problem because I get the return on the ajax as @groceries is nil which means it cannot pass through the first if statement. Which also means that @groceries is not being passed to the partial through AJAX

I need to pass variable in the search form to an AJAX partial but it doesn't work. please tell me how to pass @groceries to the partial.

...was the question :slight_smile:

ok, then your query fails.

@groceries = Groceries.search params[:query], {:page => params[:page], :per_page => groceries_per_page}

return nil. that's nothing to do with the partial. The query looks a bit strange. 1) It should be Grocery not Groceries (and this should give you an error) 2) It should be find, not search. Are you using any plugin like ferret for the search? Then you should mention that.

Does params[:query] have a value? Does it search anything at all? My guess: @groceries is nil all the time, because the query fails...

Its not the query because without ajax it works. The groceries is correct and the reason why it is search is because I am using thinking sphinx not find for my searching in the app.

When I do <%= params[:query] %> in the partial it shows my query which is red. This is really weird everthing but the instance is passing through. Thinking sphinx anomally?