允许可选 belongs_to 关联的配置在 rail 6 中不起作用

Configuration to allow optional belongs_to association not working in rail 6

在 rails 5 中,我可以使用此设置使 belongs_to 关联可选:

Rails.application.config.active_record.belongs_to_required_by_default = false

但这在 Rails 中似乎不起作用 6. 有没有办法在 Rail 6 中做到这一点?

查看 Rails 5 的新框架默认文件,它具有以下内容

# config/initializers/new_framework_defaults.rb
# Require `belongs_to` associations by default. Previous versions had false.
Rails.application.config.active_record.belongs_to_required_by_default = true

因此 Rails 6 的选项似乎已完全删除。因此,您需要根据具体情况添加 optional: true。就我而言,在大多数情况下,我结束了重写代码,以便需要关联。

该选项在 Rails6 中仍然有效,但您需要确保在加载默认配置值后设置它,即 config.load_defaults 6.0

最好的地方是config/application.rb

快结束的时候
    ...
    # Don't check for the existence of belongs_to records
    config.active_record.belongs_to_required_by_default = false
  end
end