Displaying content using AJAX


#1

All,
I am trying to implement some ajax functionality on my web site. I
have a list of links and each link have many items associated with
it.
For example, “My Netflix queue” link is connected to 10 movies
(items). Now, I am trying to display a table with these items when
the
user clicks on the link. I have other links and corresponding items
on
my page. I want to do all this using Ajax. But have not been able to
implement this so far. The code that I have used is given below:

//link.html.erb (:link passes the link_is to the rjs which gets all
//the items for that link)

<% for link in @links %>

<%= link_to_remote link.name, :url => { :action => 'show_items', :link => link.id} %>
<% end %>

//this is where I want to display the items

<% if params[:link] %>

<% for item in @item %> <% end %>

<%= item.name %>
<% end %>

//RJS Template (show_items.js.rjs)
//@items has all the items for that link. I have verified using the
//debug statement. Now I need to pass the @items variable to the view
//so that the items are displayed. But thats where I am erring.

link = params[:link]
@items = Item.find_all_by_link_id(params[:link])
logger.debug "Items : " + @items.inspect
page.replace_html :items, @items, :object => @items

//controller.rb
def link
@links = Link.find(:all)
end
Any help will be greatly appreciated.
Thanks,
vishy


#2

On 8 Mar 2009, at 15:04, vishy wrote:

//this is where I want to display the items

<% if params[:link] %>

This doesn’t look right. The placeholder div with id items should
always be there (or else your rjs will have nothing to insert into).

<% end %>

You should be naming a partial here to render.

Fred