模拟一个非常复杂的关联

时间:2015-12-27 15:45:34

标签: ruby-on-rails activerecord

我想用ActiveRecord建模一个非常复杂的关联:

class User < ActiveRecord::Base
  # can have one profile_photo
  # can have one cover_photo
end

class Trip < ActiveRecord::Base
  # can have many photos
end

class Photo < ActiveRecord::Base
  # can have one user as a profile_photo xor
  # can have one user as a cover_photo xor
  # can have many trips
end

基本上,用户属性和Photo之间存在一对一的关系,以及Trips和Photos之间的多对多关系。照片只能作为profile_photo来属于用户xor cover_photo xor有许多部分。

我如何将ActiveRecord的关联方法放入这些类中?您是否建议Photo模型的多态关联或使用继承?在哪里放置belongs_to和has_one方法?如果照片属于用户,则听起来更熟悉,但用户模型中的profile_photo_id和cover_photo_id可能是更好的选择。

0 个答案:

没有答案