我有一個自從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我已經添加了一些代碼。你的假設是正確的。 –