Showing related table data in show.rhtml

I have been following a few Rails Beginner tutorials and have been able to get a good simple app up where I have a bunch of servers and I am tracking the number of users on those servers every week.

I have been able to get the app running so that I can view the user counts for a Server - looks like this, which is displayed via the server model's show.rhtml:

I have been following a few Rails Beginner tutorials and have been able to get a good simple app up where I have a bunch of servers and I am tracking the number of users on those servers every week.

I have been able to get the app running so that I can view the user counts for a Server - looks like this, which is displayed via the server model's show.rhtml:

Server Name: EastWS2003

UserCounts:

300 302 305 315

So far so good, but rather than have that usercount table store the date of that report I have a third table that consists of an id field and a field called "weekending", which stores that actual date.

The usercount table has a field called reportdate_id which points to the reportdate table.

The result I want is to see something like this:

================= Server: NorthWM2k

UserCounts:

01/01/2007 300 01/08/2007 302 01/15/2007 305 01/22/2007 315

However I can't figure out how to code this into the show.rhtml to pull in the actual date from the reportdate table. Here is the original code from show.rhtml that displays the user count.

<% if @server.has_usercounts? %>   <h3>User Counts</h3>   <table>     <% for usercount in @server.usercounts %>        <tr>

<td><%= usercount.reportdate.weekending.strftime('%m/%d/%Y') %></td>

      <td><%= usercount.users %></td>        </tr>     <% end %>   </table> <% end %>

Can anyone point me in the right direction?

Assuming that your models reflect the associations that you implied (and that I'm interpreting them right).

  class Server     has_many :usercounts   end   class Usercount     belongs_to :server     belongs_to :reportdate   end   class Reportdate     set_table_name 'reportdate' # because you imply it's not plural     has_many :usercounts   end

But if this is a common thing, I'd suggest you also have a method:

  class Usercount     def weekending       self.reportdate.weekending     end   end

Define your own format (in your environment.rb perhaps)

  Time::DATE_FORMATS[:stoop] = '%m/%d/%Y'

and in your view say:

  <td><%= usercount.weekending.to_s(:stoop) %></td>

Of course, you can replace :stoop with :mdy or anything else that suits you.

-Rob

Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com

That was it, perfect Rob, thanks very much.

Rob helped me out and got me to the stage where I have the following output in show.rhtml