Вы можете использовать update_counters
для обновления значения прямо в базе данных:
Invite.update_counters(invite_id, :clicks => 1)
Это преобразуется в прямой вызов SQL, подобный этому:
update invites
set clicks = coalesce(clicks, 0) + 1
where id = #{invite_id}
Преимущество обновления в базе данных состоит в том, что вам не нужно беспокоиться о двух обновлениях одновременно, которые сражаются друг с другом.Вам также не нужно извлекать весь объект из базы данных и проходить все обычные вещи ActiveRecord, если вы просто увеличиваете счетчик.