私は次のモデルを持っています:
class Price < ActiveRecord::Base
belongs_to :article, inverse_of: :prices
validates :article_id, presence: true
end
class Article < ActiveRecord::Base
has_many :prices, dependent: :destroy, inverse_of: :article
end
それらを作成するときのコードは、保存時に検証エラーを発生させます (Prices は無効です):
article = Article.new
article.prices.build( { amount: 55.0 } )
article.save! #=> Validation failed: Prices is invalid
そのため、Rails は子オブジェクト (価格) の前に親オブジェクト (記事) を保存するほどスマートではないため、保存する前に article_id を価格に割り当てることができます。
ビルド機能を使用するときに外部キーの検証をどのように使用しますか?
うまくいくはずのかなり標準的なシナリオのように思えますか?
(データベース レベルの制約を使用できることはわかっていますが、ここではアプリケーション レベルの検証について質問しています)