我有模型order.rb,line_items.rb - 其中line_item屬於訂單。我已經添加了自定義的驗證,因爲這樣命令應該只有line_items所有相同MERCHANT_IDRails驗證 - 生成錯誤,但記錄仍保存
我的問題是:它似乎驗證工作正常 - 我能夠得到它時違反錯誤,但是「line_item」記錄仍然可以在任何情況下保存。任何想法?
Order.rb
validate_on_update :only_one_merchant
def only_one_merchant
merchants = []
for line_item in self.line_items
merchants << line_item.product.merchant_id
end
merchants = merchants.uniq
errors.add(:line_items, "You could only order from one same merchant at time") if merchants.length > 1
end
Order.rb加入LINE_ITEM
current_item = LineItem.new(:quantity => quantity)
current_item.variant = variant
current_item.price = variant.price
self.line_items << current_item
喜薩里爾,它沒有工作 – iwan 2010-07-13 12:12:37