5表db的Rails关系设置

时间:2015-03-27 04:03:10

标签: ruby-on-rails database has-many-through relationships

我陷入了一个犹豫不决的圈子里,需要一拳才能挣脱。我是Rails的菜鸟,我尝试使用Rails约定翻译预先存在的数据库。基本上,我目前有5个模型/表:工作单,里程日志,时间日志,零件和&设备。工作单可以有许多Mileage_logs,Time_logs和Parts,因为它们中的每一个都显示在Workorder的索引页面上。但是,这看起来很容易......

我引入设备型号时感到困惑,因为它看起来与工作订单基本相同。

处理此关系设置的最佳方法是什么?这适用于has_many :through惯例吗?或者,最好只在前程万里(Mileage_log),时间日志(Time_log)和零件模型中使用workorder_idequipment_id,然后:

class Part < ActiveRecord::Base
    belongs_to :workorder
    belongs_to :equipment
end

class Mileage_log < ActiveRecord::Base
    belongs_to :workorder
    belongs_to :equipment
end

class Time_log < ActiveRecord::Base
    belongs_to :workorder
    belongs_to :equipment
end

class Workorder < ActiveRecord::Base
    has_many :Time_logs
    has_many :Parts
    has_many :Mileage_logs
end

class Equipment < ActiveRecord::Base
    has_many :Time_logs
    has_many :Parts
    has_many :Mileage_logs
end

或者,has_many through:关系是我应该关注的工作订单和&amp;设备型号?

class Workorder < ActiveRecord::Base
    has_many :parts
    has_many :mileage_logs
    has_many :time_logs
end
class Equipment < ActiveRecord::Base
    has_many :parts, through: :workorder
    has_many :mileage_logs, through: :workorder
    has_many :time_logs, through: :workorder
    has_many :workorders
end

非常感谢任何帮助!

此外,关于路线设置的任何一般建议也会受到欢迎。

0 个答案:

没有答案