私は API を書いており、1 つの投稿の一部として作成される 2 つのモデルがOrder
ありLineItem
ます。私のAPIは(理想的には)この形式のデータを期待しています:
{
"name": "Test Name",
"date": "2013/01/01",
"items": [{
"name": "Item One",
"quantity": 10
}, {
"name": "Item Two",
"quantity": 30
}]
}
上記の例では、「name」と「date」はOrder
モデルのプロパティであり、「items」配列の各エントリはLineItem
. 私の2つのモデルは次のように定義されています:
class Order < ActiveRecord::Base
has_many :line_items
end
class LineItem < ActiveRecord::Base
belongs_to :order
validates :name, :uniqueness => {:scope => :order_id }
end
そのため、各項目はオーダーに対して一意である必要があります。アイテムを作成するためにこの POST リクエストを受け取ると、を保存するLineItems
までの一意性を適切に検証できないようです。ただし、検証に失敗した場合は、システムに保存したくない注文を保存したことになります。Order
LineItem
このような状況を処理する適切な方法は何ですか?