`foreign_type` 关系在 Rails 6 上失败

`foreign_type` relationship failing on Rails 6

我正在尝试了解此模型上的这种关系设置,以及为什么这是 Rails 6.

上的问题

来自Rails3,此关系定义为:

belongs_to :entity foreign_key: 'user_id', foreign_type: 'ruby_type'

这一直很好,一直到 Rails 5(至少我们的抓取和跟踪路由没有带来这个问题)。

然而,当我们到达 Rails 6 时,我们发现了以下内容:

ArgumentError: Unknown key: :foreign_type. Valid keys are: :class_name, :anonymous_class, :primary_key, :foreign_key, :dependent, :validate, :inverse_of, :strict_loading, :autosave, :required, :touch, :polymorphic, :counter_cache, :optional, :default

对于 Rails 6,此语法是否已更改?

foreign_type option can only be applied together with polymorphic - 因此请确保这是您所追求的多态关联。如果关联不是多态的,我会去掉 foreign_type.

belongs_to :entity, foreign_key: 'user_id', foreign_type: 'ruby_type', polymorphic: true