У вас есть два варианта, и они немного отличаются.Вы можете обновить атрибуты, а затем save
, или вы можете сделать это одновременно с помощью update
.
wine.in_stock = @reservation.in_stock
wine.save
Это устанавливает wine.in_stock
в памяти, а затем сохраняет все изменения объекта в базе данных.Преимущество здесь в том, что вы, возможно, захотите внести кучу изменений в wine
и не сохранять их, пока все не будет сделано (или вовсе).
# Change `wine.in_stock` in memory only.
wine.in_stock = @reservation.in_stock
...some other code...
# Change `wine.appraisal` in memory only.
wine.appraisal = :good_enough_for_the_pope
...some other code...
# Change `wine.price` in memory only.
wine.price = 6000
...some other code...
# Save all changes to `wine` to the database.
wine.save
Если вы можете внести изменения все вкак только лучше использовать update
.
# Update and save `wine`.
wine.update(
in_stock: @reservation.in_stock,
appraisal: :good_enough_for_the_pope,
price: 6000
)
Это назначает все атрибуты, используя wine.in_stock=
и wine.appraisal=
и wine.price=
, и вызывает wine.save
все в одной транзакции.