You might want to look into has_one, in this case.
has_one :main_image, :class_name => “Image”
with a :conditions or :order or something specifying how to choose that “main” image". It looks like you might not be using the has_many relationship between Images and Categories correctly as well. I think you mean to have Category has_many :images and Category.find(:all, :include => :images). ImageCategory looks a little Frankenmodel-y.