在我的ruby on rails應用程序中,我試圖在克隆後保存模型時出現問題。我有以下模型。Ruby on Rails活動關聯克隆和複製方法
class Company < ApplicationRecord
has_many :employees
end
class Employee < ApplicationRecord
belongs_to :company
has_one :user
end
class User < ApplicationRecord
belongs_to :employee
end
當我用戶下面這段代碼我得到的ActiveRecord :: RecordInvalid:驗證失敗:員工必須存在「的錯誤。
company = Company.new
employee = Employee.new(company: company)
user = User.new(name: 'John',email: '[email protected]',password: 'password')
user.employee = employee
u = user.dup
u.save!
在另一方面,當我使用的不是「DUP」 Rails的「克隆」試圖保存用戶模式的兩倍,這導致例外
company = Company.new
employee = Employee.new(company: company)
user = User.new(name: 'John',email: '[email protected]',password: 'password')
user.employee = employee
u = user.clone
u.save!
如果我保存模型,而不會dupping和克隆,沒有問題。在我的應用程序中,我使用了構建器模式,並且必須使用dup或clone方法之一。
我看不到我想念的東西。
有什麼建議嗎?
謝謝。
您的克隆模型的用例是什麼? – teacher
事實上,看起來這可能不是您的教師或老闆打算使用的建造者模式。我會仔細檢查,因爲在這種情況下,複製沒有明確的價值。 – Adamantish