首页 > 解决方案 > 了解 Rails 多态关联

问题描述

我正在尝试了解如何在 RoR 中使用多态关联,任何帮助将不胜感激 - 我已经阅读了几篇文章,但我仍然对如何创建下面的模型感到非常困惑。

基本上我想要一个名为 DrumUsage 的类,它将有多个 Additional_Usages 和多个 Removed_Usages。

这是一个图表,显示我希望它看起来像什么。

在此处输入图像描述

标签: ruby-on-rails

解决方案


我想如果我是你,我会有一个类似的Drum东西:

class Drum < ApplicationRecord
  has_many :drum_usages

end

然后一个DrumUsage(我不喜欢这个名字,但我想它有效)类似:

# == Schema Information
#
# Table name: drum_usages
#
#  id              :bigint           not null, primary key
#  note            :text
#  drum_id         :integer
#  person_id       :integer
#  usage_type      :integer          not null
#  fluid_amount    :float            not null
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#
class DrumUsage < ApplicationRecord
  belongs_to :drum

  enum usage_type: {added: 0, removed: 1}

end

我猜到了那fluid_amount一点。我不知道那是不是一个数字,如果是,是什么数字。所以,我就卡:float在那里了。

然后你可以做一些操作@drum.drum_usages来做一些事情,比如弄清楚桶里有多少液体,所有从桶里加/减液体的人是谁。上次添加/去除液体的时间。等等。


推荐阅读