我有一个自从1月份以来一直在研究的rails 5项目,今天我发现我能够创建一个没有指定父项的子记录。这是相当令人震惊的,因为我证实我使用rails 5.1.2以及ruby 2.4.1。该网站仍在开发中。我打开了rails控制台并测试了一些应该有父验证的其他模型(应该在rails 5中默认进行验证),并且这些记录也是在没有关联的情况下创建的。Rails 5停止验证关联
这没有任何意义。我知道这在某种程度上起作用。本周早些时候发生了最大的变化,当时我在文件上传中添加了“回形针”。有没有人有任何建议或有什么想检查什么想法?
class Order < ApplicationRecord
require 'csv'
include SendGrid
belongs_to :admin, optional: true
belongs_to :user
has_one :return
has_many :order_shipments, dependent: :destroy
has_many :order_items, dependent: :destroy
has_many :order_addresses, dependent: :destroy
has_many :order_comments, dependent: :destroy
......
end
class OrderShipment < ApplicationRecord
belongs_to :order
end
我已经添加下面的代码我development.rb和production.rb环境,它看起来好像是压倒一切的东西,回形针可以做,以解决这个问题。
config.active_record.belongs_to_required_by_default = true
不过,我觉得这个代码应该在application.rb中,但“配置”未初始化这样做,所以当我收到以下错误:
undefined local variable or method `config' for main:Object (NameError)
您可以添加一个示例,说明您的模型如何设置以及您创建这些模型的过程?请参阅[如何创建最小,完整和可验证的示例](https://stackoverflow.com/help/mcve)另外,如果您从头开始创建新项目,您会看到这个吗? –
我假设这是** belongs_to **父母的关系。在rails 5.X中属于需要的默认值。但回形针可能会做一些不同的事情,然后一个** belongs_to **你可以发布你的模型的一些代码? –
@MichaelDeering我已经添加了一些代码。你的假设是正确的。 –