使用ajax渲染部分

In my rails app I have a model Song. On one of the user's profile pages user_music_path(@user) I'm rendering all of their songs.

People can also like these songs, which is set up and working, I just want to use AJAX instead of page refreshes. The problem I'm having is when using ajax, I get the error undefined local variable or method "song" when I'm clicking the link "like".

Here is some of my code:

User's Music Page views/users/music.html.erb

...
<ul class="playlist list-group">
  <%= render @songs %>
</ul>

views/songs/_song.html.erb

<li class="list-group-item">
  <p class="pull-right">
    <%= render :partial => 'songs/like_button', :locals => {:song => song} %>
    <%= render :partial => 'songs/likes', :locals => {:song => song} %>
  </p>
</li>

views/songs/_like_button.html.erb

<% if current_user.voted_on?(song) %>
  <%= link_to "Unlike", unlike_song_path(song), :method => :post, :remote => true %>
<% else %>
  <%= link_to "Like", like_song_path(song), :method => :post, :remote => true %>
<% end %>

views/songs/_likes.html.erb

<%= song.votes.count %>

views/songs/like.js.coffee

$("p.pull-right").html('<%= render :partial => "songs/like_button", :locals => {:song => song} %><%= render :partial => "songs/likes", :locals => {:song => song} %>');

controllers/songs_controller.rb

def like
  begin
    @vote = current_user.vote_for(@song = Song.find(params[:id]))
    @vote.save
    respond_with @song.user, :location => user_music_path(@song.user)
  rescue ActiveRecord::RecordInvalid
    redirect_to @song
  end
end

And as mentioned earlier, the :like action worked perfectly before I starting using AJAX. I've also added respond_to :html, :js to my songs_controller. And the error I get when I try to like the song is ActionView::Template::Error (undefined local variable or method "song" for #<#<Class:0x000001028de9d0>:0x00000106ecd9f0>):

Where you have

<a href="<%= song.audio %>"><%= song.name %></a>

try instead

<a href="<%= @song.audio %>"><%= @song.name %></a>

And do the same with your link_to paths and your render calls.

Do rake routes and use of of them for the link, e.g. (pseudo-code) link_to 'song', song_audio_path