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”) %>”>
<%= ticket.id %>
<%= h(ticket.title) %>
<%= ticket.ticket_status.status %>
<%= ticket.last_activity_at %>
<% 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?