[rails 4.1] weird behaviour in rails console? lazy loading of database connection or spring?

I guess I am the only one using it like this, by i regularly start my rails console to quickly show the column-names of models.

Since 4.1 (afaik), the first call to a class does not return the model introspection, but instead urges me to use Batch.connection to establish a connection???

If I use a specific method to get the column names, I get no error, and afterwards the class introspection just works.

Of course this is no biggie, but I am curious what the cause is of the this behaviour, whether this is intended or not, and how I could circumvent it.

Example console output:

Loading development environment (Rails 4.1.0)

:001 > Batch

=> Batch (call 'Batch.connection' to establish a connection)

:002 > Batch.column_names

=> ["id", "name", "batch_nr", "revision", "comments", "batch_status_id", "created_at", "updated_at"]

:003 > Batch

=> Batch(id: integer, name: string, batch_nr: string, revision: string, comments: text, batch_status_id: integer, created_at: datetime, updated_at: datetime)

Any tips or hints would be greatly appreciated.

I've noticed that, and it seems like a bug to me, but I haven't had the time to investigate.

That said, this behavior doesn't occur when using `pry` for the Rails console, so just one more reason to make that standard :slight_smile:


I got the same behaviour in Rails 4.0.8