Rails Mongoid has_many 查询不使用foreign_key

问题描述 投票:0回答:1

我是第一次使用 mongodb。我有以下型号

class Legacy::User
  include Mongoid::Document

  has_many :customers
  field :username, type: String
end

class Legacy::Customer
  include Mongoid::Document

  belongs_to :user
  field :user_id, type: String
end

当我运行下面的查询时,它不会返回客户记录。

Legacy::User.last.customers

来自控制台的查询

{"find"=>"legacy_users", "filter"=>{}, "limit"=>1, "skip"=>0, "sort"=>{"_id"=>-1}, "$db"=>"bo_development", "lsid"=>{"id"=><BSON::Binary:0x21780 type=uuid data=0xb35d9aef1441401b...>}}

{"find"=>"legacy_customers", "filter"=>{"_id"=>"zx54QQx4gPbJvQ3rm"}, "$db"=>"bo_development", "lsid"=>{"id"=><BSON::Binary:0x21780 type=uuid data=0xb35d9aef1441401b...>}}

看第二个查询,为什么它在过滤器中不使用

user_id
?我在这里错过了什么吗?

ruby-on-rails ruby mongodb mongoid
1个回答
0
投票

找到解决方案。问题出在 Rails 协会上。将代码更改为下面的代码,现在可以使用了。 用户模型

has_many :legacy_customers, class_name: 'Legacy::Customer', foreign_key: 'user_id'

客户模型

belongs_to :legacy_user, class_name: 'Legacy::User', foreign_key: 'user_id'
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.