你能在Rails中做双面的belongs_to吗?

时间:2017-12-14 13:37:51

标签: ruby-on-rails

这可能吗?

class CarActivity < ActiveRecord::Base
  belongs_to :inspection
end
class Inspection < ActiveRecord::Base
  belongs_to :car_activity # instead of using a has_one here
end

目标是:

  • 更容易检查数据库记录:如果检查具有关联的car_activity,则查看表格列(使用hirb gem),而不会检查检查并检查对象的car_activity参考。
  • 使查询更容易:在没有相关car_activity的情况下进行所有检查(即设置为nil)可以通过对检查表的简单直接查询来完成,而无需通过查询(或加入) car_activities表。

更新:也许有更好的方法来实现这些目标?

1 个答案:

答案 0 :(得分:-1)

您是否尝试过使用Polymorphic?

class CarActivity < ActiveRecord::Base
  belongs_to :inspection
end
class Inspection < ActiveRecord::Base
  belongs_to : car_activity, polymorphic: true
end

Ruby on Rails Guide表示“具有多态关联,模型可以属于多个其他模型,在单个关联上”。