Ruby on rails 如何在Rails中的一列中插入或存储多个ID?

Ruby on rails 如何在Rails中的一列中插入或存储多个ID?,ruby-on-rails,ruby,ruby-on-rails-5,activeadmin,ruby-on-rails-5.1,Ruby On Rails,Ruby,Ruby On Rails 5,Activeadmin,Ruby On Rails 5.1,对于多对多关系,如何在数据库中的单列中插入或保存多个以逗号分隔的ID,例如2、5、8、10值?我正在使用active admin进行资源管理 有很多:通过联想 A has_多:通过关联通常用于建立与另一个模型的多对多连接。此关联表示声明模型可以通过第三个模型与另一个模型的零个或多个实例进行匹配。例如,考虑一个医疗实践,病人预约看医生。相关的关联声明可以如下所示 class Physician < ApplicationRecord has_many :appointments ha

对于多对多关系,如何在数据库中的单列中插入或保存多个以逗号分隔的ID,例如2、5、8、10值?我正在使用active admin进行资源管理

有很多:通过联想

A has_多:通过关联通常用于建立与另一个模型的多对多连接。此关联表示声明模型可以通过第三个模型与另一个模型的零个或多个实例进行匹配。例如,考虑一个医疗实践,病人预约看医生。相关的关联声明可以如下所示

class Physician < ApplicationRecord
  has_many :appointments
  has_many :patients, through: :appointments
end

class Appointment < ApplicationRecord
  belongs_to :physician
  belongs_to :patient
end

class Patient < ApplicationRecord
  has_many :appointments
  has_many :physicians, through: :appointments
end

当你想要使用多对多关系时,那么使用has_和属于多个关联。所以您可以为2个模型创建联接表。这是@user3678149指出的。无论您有什么奇怪的用例,postgres中都有一些数组类型可用于存储这些东西。当您启动并运行它时,您可能需要进行性能测试。我无法想象一个序列化连接的性能会像标准的多对多连接一样好。前面的评论是正确的。通常,您不希望在单个列中序列化多个ID。标准的解决方案是使用一个中间表—一个联接表来关联这样的记录。更多信息,请参阅。