ポリモーフィックな関連付けとプレゼンスの検証ができるかどうか疑問に思いました
business
モデルとaddress
モデルがあり、address
多形であるとしましょう
class Business< ActiveRecord::Base
has_one :address, as: :addressable
validates_presence_of :address
end
class Address< ActiveRecord::Base
belongs_to :addressable, polymorphic: true
end
検証を受けることは可能validates_presence_of :address
ですか?この設定でオブジェクトを作成するときに問題が発生します。
まず、このようなビジネスオブジェクトを作成するとします。
b = Business.new(name: "Hello23")
b.address = Address.new(street: "House 43 BCD")
b.save!
これは機能しません。ビジネスがundefined method constantize for 0:Fixnum
まだ保存されておらず、IDが割り当てられていないため、アドレスをdbに保存しようとすると、アドレス可能なIDが見つからないため、エラーが発生します。 。
しかし、反対側からもそれは不可能です-私は住所がなければビジネスを救うことはできません。
このような状況に対処するための最良の方法は何ですか?
****これとは別に、このようにアドレス側でも検証を行いたい場合はどうなりますか**
validates_presence_of :addressable
私はこのすべてに約2日間苦労しています。あなたの人々がどんなアイデアを持っているか見てみましょう?**