Ответ 1
Консоль, вероятно, имеет, имеет соединение с базой данных, но сообщает, что это не так.
Чтобы узнать, действительно ли это, сделайте запрос в консоли.
Link.count
Это зафиксировало ложное положительное предупреждение для меня и коллеги.
В последние дни я обновляю свою ОС X до Maverics. Сегодня, когда я пытаюсь создать новый проект следующим образом:
rails new abc
было много проблем, но я устанавливаю xcode, и теперь он работает. Прямо сейчас я открываю консоль рельсов следующим образом:
rails console
а затем все, что я пишу, я вижу только:
Loading development environment (Rails 4.0.1)
1.9.3p448 :001 > Link
=> Link(no database connection)
Что не так? Mysql работает, база данных существует. Когда я делаю rake db: migrate все работает нормально.
Консоль, вероятно, имеет, имеет соединение с базой данных, но сообщает, что это не так.
Чтобы узнать, действительно ли это, сделайте запрос в консоли.
Link.count
Это зафиксировало ложное положительное предупреждение для меня и коллеги.
В прошлом, ссылаясь на модель ActiveRecord сразу после загрузки консоли, возвращалась информация о столбце. Rails теперь возвращает эту информацию только в том случае, если она явно принудительно подключалась к базе данных с помощью таких методов, как connection
, first
, all
, count
и т.д.
Вы можете восстановить предыдущее поведение, добавив его в свой config/application.rb
console do
ActiveRecord::Base.connection
end
В соответствии с вопросами № 12804 на rails/rails.
Сообщение просто сообщает вам, что AR еще не подключился к базе данных и, следовательно, не знает информацию о столбце. Я думаю, что он не хотел подключаться к базе данных, если нам не нужны данные.
Теперь вы можете использовать Model.connection
для установления соединения.
Попробуйте использовать reload!
на консоли и убедитесь, что у вас есть записи в указанной модели, если не создавать записи для отношений и т.д.
У меня была такая же проблема на ubuntu. Я использовал reload!
в консоли rails и добавил записи в базу данных.
У меня такая же проблема с Rails 4.0.1. Это происходит на сервере Linux, на котором я развертываюсь, а также на моей машине разработки Mavericks.
Сервер работает, спецификации работают, но консоль не имеет подключения к базе данных.
Возврат к Rails 4.0.0 устраняет проблему с помощью консоли.
Я не нашел другого упоминания об этой проблеме. Возможно, проблема с изменениями для 4.0.1 и адаптера Postgres, может быть? (Вы используете Postgres?)