В моем приложении Rails у меня есть эти модели
Order has_many OrderItem
OrderItem belongs_to Order
Мой контроллер имеет этот (псевдо) код:
#before_filter
@cart = Order.find(session[:cart_id])
#Action: update_item
item = OrderItem.find(params[:item_id]
#The order, item belongs to, is in fact @cart, i.e. @cart.id == item.order.id
item.price = 999.99
item.order.total += item.price
После последней строки объект @cart
все еще имеет старое значение total
.
Как лучше всего решать такие ситуации в Rails? Я думаю, что самый простой способ - это просто перезагрузить @cart
, но, возможно, есть более похожий на Rails способ.