Ваш код немного отключен, он выглядит как действие контроллера для создания, но код читается так, как будто для обновления.
Вне зависимости от ...
Вы можете использовать хэш параметра, чтобы обновить все сразу.
В случае, если вы создаете:
order_update = {:price => 5.99, :representative =>
Product.find(params[:product_id]).representative,
:shipping_location => SHIPPING_LOCATION,
:user => current_user}
@order = Order.new(order_update)
В случае обновления:
@order.update_attributes(order_update) #attempts to save.
Смешивая его с кодом вашего контроллера, мы получаем:
def create
@order = Order.find(params[:id])
order_update = {:price => 5.99, :representative =>
Product.find(params[:product_id]).representative,
:shipping_location => SHIPPING_LOCATION,
:user => current_user}
respond_to do |format|
if @order.update_attributes(order_update)
# save succeeded. Redirect.
else
# save failed. Render with errors.
end
end
end