# Passing instance through AJAX

**URL:** <https://www.ruby-forum.com/t/passing-instance-through-ajax/146798>\
**Category:** Rails\
**Created:** [August 25, 2008, 4:34pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798 "2008-08-25T16:34:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 4:34pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/1 "2008-08-25T16:34:12Z")

</div>

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  
%\>  
  
\<%= 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” )

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 4:44pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/2 "2008-08-25T16:44:47Z")

</div>

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

should work

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 4:45pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/3 "2008-08-25T16:45:22Z")

</div>

oops

should be  
\<%= @groceries.name %\>

of course

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 5:41pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/4 "2008-08-25T17:41:40Z")

</div>

> 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 🙂

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…

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 5:01pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/5 "2008-08-25T17:01:48Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 6:27pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/6 "2008-08-25T18:27:21Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tyliong](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e9a140/32.png) [@tyliong](https://www.ruby-forum.com/u/tyliong)\
**Post date:** [August 25, 2008, 7:44pm UTC](https://www.ruby-forum.com/t/passing-instance-through-ajax/146798/7 "2008-08-25T19:44:46Z")

</div>

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?
