Partial not finding variable

Hello - am still very new and need any help available

I have a user model

class User < ActiveRecord::Base
  has_many :calls
  has_many :visits
  has_many :calls_visited,
    :through => :visits,
    :source => :call

  has_many:calls do
    def recent
      find :all, :order => 'id DESC', :limit => 5
    end
  end
end

and I have a view to display the calls for a particular user using
a partial
The view is

<div id="top_full">
    <h2>My Dashboard - <%= @current_user.login.capitalize %></h2>
</div>
<div id="c_left">
  <div id="recentCalls">
    <% if @current_user.calls.blank? %>
        <h3>You have no calls</h3>
        <ul>
          <li><%= link_to 'Add a call to get started!', { :controller =>
"calls", :action => "new" } %></li>
        </ul>
    <% else %>

                        <h3>My Recent Calls</h3>
                                <%= render :partial => 'user/
recentCalls', :collection => @current_user.calls.recent %>
      </ul>
    <% end %>
  </div>
  <div id="recentVisits">
      <% if @current_user.visits.blank? %>
          <h3>You have no visits</h3>
          <ul>
            <li><%= link_to 'Add a visit to get started!', { :controller =>
"visits", :action => "new" } %></li>
          </ul>
      <% else %>
          <h3>My Recent Visits</h3>
        <ul>
          <% @current_user.visits.each do |c| %>
              <li><%= link_to c.name, {:controller => 'visits', :action =>
'show', :id => c.id} -%> - <em><%= c.date %></em></li>
            <% end %>
        </ul>
      <% end %>
  </div>
</div>

<div id="c_right">
  <%= render :partial => 'dashActions' %>
</div>

and the partial that doesn't work is the user/recentCalls partial

<li>

  <h5><%= call.created_at.to_formatted_s(:long) %></h5>
        <h4><%= call.name %></h4>
</li>

when the view evaluates <% if@current_user.calls.blank? %> it goes
through to the

<%= render :partial => 'user/recentCalls', :collection =>
@current_user.calls.recent %>

and throws an error NameError in User#dashboard

Showing user/_recentCalls.rhtml where line #3 raised:

undefined local variable or method `call' for #<ActionView::Base:
0x2658158>

Extracted source (around line #3):

1: <li>
2:
3: <h5><%= call.created_at.to_formatted_s(:long) %></h5>
4: <h4><%= call.name %></h4>
5: </li>

Trace of template inclusion: /user/dashboard.rhtm

Any ideas on why it doesn't get the call? I've tried
current_user.call.created_at..... and @current_user and @call et. .
Anyway any help will be appreciated

render creates a local variable for the object(s) passed to it based
on the filename of the partial. So in 'user/_recentCalls', passing the
collection would result in a local variable named 'recentCall'.

See the API docs for more info: http://api.rubyonrails.org/classes/ActionView/Partials.html

I looked that up and thanks for the reply but I still don't understand
what I should write in my render code to call the partial
and then how my _recentCalls partial
should be referenced in the partial template? any suggestions will be
appreciated!!

Thanks - Owen

You could name your partial just "call" or...

At the start of it do:

<% call = recentCall %>

I would reccomend doing it the first way.

You could name your partial just "call" or...

At the start of it do:

<% call = recentCall %>

I would recomend doing it the first way.

Thanks for all the help - I think I got it working now