trouble linking models

Class User < ActiveRecord::Base has_many :articles

class Article < ActiveRecord::Base belongs_to :user

After a user posts an article, I want to include their username. I presume I should just be able to use <%= article.user.screen_name %> in the articles/index. This give me:

You have a nil object when you didn't expect it! The error occurred while evaluating nil.screen_name

Sean, did you check your database? Is user_id filled up correctly?

tom

Sean Six wrote:

I know this doesn't help the core problem, but it might help in debugging to set that column to 'NOT NULL' in your database, and set a default value.

I can get <%= article.user_id %> to print the id number of the user. But when I try to use <%= article.user.screen_name %> I get the error:

You have a nil object when you didn't expect it! The error occurred while evaluating nil.screen_name

Could this mean that the user_id field in the article table is filled in but there is no user with that id? Have a look in the database. I would have thought this might produce a different error though.

If the db is ok use the ruby debugger to break at that point and see what the variables are set to.

Colin