При создании реальной таблицы базы данных в консоли rails, User.table_exists?
не дает мне правильный результат.Но когда я смотрю на ActiveRecord::Base.connection.tables
, это показывает, что таблица существует.Я должен выйти из rails console
и вернуться до того, как User.table_exists?
даст мне правильное значение.Есть ли какое-то кэширование?Ошибка в Rails 5.2.1?Или я что-то упустил?
Код для воспроизведения:
в терминал / bash
rails generate model User name:string
rails console
в рельсы консоли
User.table_exists? => false
ActiveRecord::Base.connection.tables => []
ActiveRecord::Migration[5.2].create_table :users =>
-- create_table(:users)
(0.1ms) SELECT sqlite_version(*)
(1.5ms) CREATE TABLE "users" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL)
ActiveRecord::Base.connection.tables => ["users"]
User.table_exists? => false
exit
в терминал / bash
rails console
в рельсовая консоль
User.table_exists? => true
с использованием:
Ruby 2.5.0
Рельсы 5.2.1