I'm quite the Rails beginner and I think I just need a good shove in the right direction. TIA!
schema: CREATE TABLE `ticket_statuses` ( `id` int(11) NOT NULL, `status` varchar(255) default NULL, PRIMARY KEY (`id`) );
CREATE TABLE `tickets` ( `id` int(11) NOT NULL, `title` varchar(255) default NULL, `details` text, `status_id` int(11) default NULL, `opened_at` datetime default NULL, `closed_at` datetime default NULL, `last_activity_at` datetime default NULL, PRIMARY KEY (`id`), KEY `fk_ticket_status` (`status_id`), CONSTRAINT `fk_ticket_status` FOREIGN KEY (`status_id`) REFERENCES `ticket_statuses` (`id`) );
models: Ticket belongs_to :ticket_status TicketStatus has_many :tickets
ticket controller list method: ... def list @ticket_pages, @tickets = paginate :tickets, :order => "id DESC", :per_page => 10 end ...
ticket list view: ... <% for ticket in @tickets %> <tr class="<%= cycle("list-line-odd", "list-line-even") %>"> <td class="name"><a class="ticket" href="/ticket/show/<%= ticket.id %>"><span class="yellow-tag"><%= ticket.id %></span></a></td> <td class="name"><%= h(ticket.title) %></td> <td><%= ticket.ticket_status.status %></td> <td><%= ticket.last_activity_at %></td> </tr> <% end %> ...
All I want to do is print out the ticket_status.status field in my list view. I can do this all day: <%= ticket.status_id %>. But when I try <%= ticket.ticket_status.status %> I get the "You have a nil object when you didn't expect it! The error occured while evaluating nil.status" error. I've emptied my tickets table and added all new ones. What stupid thing am I doing wrong?