Хотя ответ AbM верен, я думаю, что в этом случае важно также добавить проверку уникальности:
# in your invoice model:
validates :invoice_number, uniqueness: { scope: :user }
before_validation :generate_invoice_number
private
def generate_invoice_number
self.invoice_number = user.invoices.maximum(:invoice_number).next
end
Кроме того, я бы добавил ограничение базы данных, чтобы эти числа были уникальными для каждого пользователя, дажев маловероятном случае состояния гонки:
add_index :invoices, [:user_id, :invoice_number], unique: true