Ruby on Railsアプリケーションで、モデルをクローンした後にモデルを保存しようとしているときに問題があります。私は以下のモデルを持っています。Ruby on Railsのアクティブな関連付けクローンとdupメソッド
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は二回Userモデルを保存しようと、私はduppingおよびクローニングせずにモデルを保存する場合、これは例外
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!
をリード問題はない。私のアプリケーションでは、ビルダーパターンを使用しており、dupまたはcloneのメソッドの1つを使用する必要があります。
私には何が欠けているのか分かりません。
提案がありますか?
ありがとうございました。
モデルをクローニングするためのユースケースは何ですか? – teacher
実際、これはインストラクターや上司が意図したビルダーパターンの使用ではないようです。この文脈では、重複の明確な価値がないので、私は慎重にチェックします。 – Adamantish