我有一个客户端和工人模型。工作人员可以将客户列入黑名单。如果列入黑名单,客户和工作人员将永远不会再次配对。在我的工人模型中,
has_and_belongs_to_many :blacklisted_clients, class_name: 'Client',
join_table: 'blacklisted_clients_workers',
association_foreign_key: 'blacklisted_client_id'
在我的客户端模型中,
has_and_belongs_to_many :workers,
join_table: 'blacklisted_clients_workers',
foreign_key: 'blacklisted_client_id'
联接表blacklisted_clients_workers
由两列worker_id
和blacklisted_client_id
组成。我曾试图将这种关联归结为,
Worker.create!(
blacklisted_clients: BlacklistedClient.where(id: (1..200).to_a.shuffle.take(3)),
)
当我这样做时,我收到一条错误
NameError: uninitialized constant BlacklistedClient
我做错了什么?
答案 0 :(得分:3)
当您编写 BlacklistedClient.where(....)时,有效支持会查找BlacklistedClient 模型,这是您的客户端模型。
您已为不是模型的客户创建了blacklisted_clients关系。
尝试使用客户端而不是 BlacklistedClient 来创建相同的内容。