尝试加入两个模型时,不确定应该使用什么适当的活动记录关联

时间:2019-01-10 21:52:43

标签: ruby-on-rails associations rails-activerecord

我有两个模型-志愿者和注册。

志愿者更加稳定,但是注册者会来去去。我正在尝试通过在我的志愿者模型的注册模型中使用外键来为志愿者分配新的注册。

我查看了herehere并最终创建了一个包含注册和志愿者ID的联接表:

class CreateJoinTable < ActiveRecord::Migration[5.0]
  def change
    create_join_table :registrations, :volunteers do |t|
      t.index [:registration_id, :volunteer_id], name: :reg_vol_index
      t.index [:volunteer_id, :registration_id], name: :vol_reg_index
    end
  end
end

在我的两个模型中,我不完全确定将关联列出为什么-我已经了解过has_many,belongs_to和has_many_and_belongs_to-以及t.reference。

我只希望能够将志愿者ID分配给注册。

任何人都可以帮助您确定最佳的关联类型吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

已经创建了联接表,您可以为两个模型使用npm install --save isomorphic-fetch es6-promise 关联。

volunteer.rb:

has_and_belongs_to_many

registration.rb:

class Volunteer < ApplicationRecord
  has_and_belongs_to_many :registrations
end

这将允许您通过志愿者(class Registration < ApplicationRecord has_and_belongs_to_many :volunteers end )和通过志愿者(volunteer.registrations)访问注册

参见此处:https://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association