了解Rails多态关联

时间:2019-06-28 15:51:12

标签: ruby-on-rails

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

基本上,我希望有一个名为DrumUsage的类,它将具有多个Added_Usages和多个Removed_Usages。

这是一个图表,显示我想要的样子。

enter image description here

1 个答案:

答案 0 :(得分:2)

我想如果我是你,我会得到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上进行操作,以进行操作,例如弄清楚桶中当前有多少液体,谁是从桶中添加/减去液体的所有人。上次添加/除去液体时。依此类推。