Is there a compact way with ActiveRecord to query for what id it\'s going to use next if an object was going to be persisted to the database? In SQL, a query like this would
If you want to be sure no one else can take the 'new' index, you should lock the table. By using something like:
ActiveRecord::Base.connection.execute("LOCK TABLES table_name WRITE")
and
ActiveRecord::Base.connection.execute("UNLOCK TABLES")
But this is specific for each database engine.
The only correct answer for a sequential id column is:
YourModel.maximum(:id)+1
If you sort your model in a default scope, last and first will depend on that order.