Всё, теперь понял.
Создаешь таблицу image_diff (например).
поля: image_id, second_image_id, percent
Class ImageDiff:
belongs_to :image
belongs_to :second_image, :class_name => «Image», :foreign_key => «second_image_id»
Class Image:
has_one :image_diff # связь один-к-одному, потому что first_image_id привязывается к модели Image
и можно будет обращаться:
im = Image.first
im.image_diff.percent
im.image_diff.second_image # тут он выведет все связи, поэтому нужно будет их перебирать по одному