私は2つのモデルを持っています:
class Customer < ActiveRecord::Base
has_many :contacts
end
class Contact < ActiveRecord::Base
belongs_to :customer
validates :customer, presence: true
end
次に、コントローラーで、「1 つの」スイープで両方を作成できると期待します。
@customer = Customer.new
@customer.contacts.build
@customer.save
これ, 失敗します (残念ながら翻訳がオンになっています. 次のように翻訳されます: 連絡先: 顧客を空白にすることはできません.)
@customer.errors.messages #=> :contacts=>["translation missing: en.activerecord.errors.models.customer.attributes.contacts.invalid"]}
モデルを調べると、確か@customer.contacts.first.customer
にnil
. @customer
が保存されていないため、これはどういうわけか意味がありid
ます。
このような関連モデルを構築して保存/作成するにはどうすればよいですか?
- モデルが無効な場合、モデルは永続化されません。
- エラーは、すべてのモデルからのエラー メッセージを組み合わせるのではなく、1 つのリストで読み取ることができます。
- コードを簡潔に保ちますか?