我有一种情况,我不确定如何在Rails中处理:
活动has_many :photos
和
照片belongs_to :event
足够简单
但是,Event还需要引用一张“关键”照片。
考虑添加:
活动has_one :key_photo, :foreign_key => "photo_id"
但这项工作是否会在上面has_many
给出?如果是这样,如何处理已经说Photo belongs_to :event
的照片模型中的逆?
我可以为Photo添加一个布尔列,只对一行('key'照片)为真,但这似乎是浪费...如果只有1位列。
答案 0 :(得分:0)
为了它的价值,我会添加/使用一位列。它使您的代码更具表现力并更好地显示代码的意图。依靠像“哦,它has_one AND has_many”这样的怪癖,将来会混淆其他开发者,比如你自己。
您首先要为其他开发人员编写,而不是编译器或数据库。事后回来,让它更美丽/优雅,与分析。这一点将导致记录存储问题的可能性很小,充其量。
答案 1 :(得分:0)
我认为最干净的实现是在事件中有额外的FK:key_photo。
# events.rb
belongs_to :key_photo, :class_name => 'Photo'