Rails has_one 外键在所属模型上的关系?

Rails has_one relationship where foreign key is on owning model?

我有一个 PhotoPhotoset 模型:

一个Photoset应该有很多photos和一个primary_photo。 一张Photo应该属于很多Photosets,可以是很多照片集中的primary_photo

但是我对如何设置 primary_photo 关系感到困惑。我正在设想将 primary_photo_id 添加到 photosets 但我无法弄清楚如何定义 has_one 以便在拥有方(Photoset)上定义该列。

我尝试通过以下方式实现:

我在我的模型中设置了关系:

class Photo < ActiveRecord::Base
  has_and_belongs_to_many :photosets
  validates_uniqueness_of :flickr_uid
end

class Photoset < ActiveRecord::Base
  belongs_to :user
  validates_uniqueness_of :flickr_uid
  has_and_belongs_to_many :photos
  has_one :primary_photo, class_name: 'Photo' # !???
end
    class Photo < ActiveRecord::Base
      has_and_belongs_to_many :photosets
      validates_uniqueness_of :flickr_uid
    end

    class Photoset < ActiveRecord::Base
      belongs_to :user
      validates_uniqueness_of :flickr_uid
      has_and_belongs_to_many :photos
      belongs_to :primary_photo, class_name: 'Photo'
    end