неинициализированная константа MysqlCompat :: MysqlRes с RubyMine

Я получаю эту ошибку при запуске среды разработки через RubyMine 3.1. Гем mysql прикреплен, он запускается из Bundler.

Gemfile

gem "mysql",         "2.8.1"

Gem был установлен с использованием:

gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

через конфигурацию Bundler.

=> Загрузка WEBrick
=> Приложение Rails 2.3.10 запускается на http://0.0.0.0:3000 [2011-03-21
13:36:43] INFO WEBrick 1.3.1
[2011-03-21 13:36:43] INFO ruby ​​1.8.7
(2011-02-18) [i686-darwin10.7.1]
[2011-03-21 13:36:43] ИНФОРМАЦИЯ
WEBrick :: HTTPServer # start: pid = 625
port = 3000
=> Позвонить с помощью - d для отсоединения
=> Ctrl-C для выключения сервера /! \ FAILSAFE /! \ Mon Mar 21 13:36:46
-1000 2011 Статус: 500 Внутренняя ошибка сервера неинициализированная константа
MysqlCompat :: MysqlRes

Система использует RVM, gemset и ruby ​​1.8.7, rails 2.3.10 и mysql 5.5.10.

Я могу нормально запустить консоль и сервер Rails через Терминал через

ruby script/server
ruby script/console

Проблема кажется изолированной от простой попытки запустить консоль и сервер Rails через RubyMine. Вероятно, есть какой-то небольшой параметр конфигурации, который я пропустил и не видел.

RubyMine настроен на использование ruby ​​и gemset из RVM, а также настроен на игнорирование глобального gemset.

Большинство решений, которые я видел, предусматривают понижение версии до mysql 5.1, но это не кажется реальным решением, поскольку я могу отлично запускать консоль и сервер Rails из Терминала.


person John Wang    schedule 21.03.2011    source источник
comment
Я пошел дальше и установил PATH для RubyMine через: devnet.jetbrains.net/docs/DOC -1160, и это не решает проблему.   -  person John Wang    schedule 23.03.2011


Ответы (2)


Я разговаривал с Джоном Вангом, и он сказал мне, что продолжал решать эту проблему.

RubyMine - это графический интерфейс, поэтому он не принимает настройки env, определенные для терминала в OS X. См. Этот документ Jetbrains, чтобы лучше понять, как это работает: http://devnet.jetbrains.net/docs/DOC-1160

Ссылка на инструмент, который он использовал для изменения переменных среды, неверна по ссылке выше. Я использовал следующее: http://www.epikentros.net/Main/Mac_Software.html < / а>

Вам необходимо убедиться, что у вас есть настройки как в Терминале (~ / .profile или ~ / .bash_profile), так и в графическом интерфейсе OS X (с помощью инструмента, предоставленного по ссылке выше) для DYLD_LIBRARY_PATH (необходимо определить каталог mysql lib здесь) и ПУТЬ (скопируйте значения, уже определенные для терминала, в графический интерфейс OS X)

Это должно помочь. Если у вас возникли дополнительные проблемы, убедитесь, что вы используете одну и ту же архитектуру для MySQL и MySQL Gem (i386 или x86_64).

person ZeroNoir    schedule 12.07.2011

Просто была очень похожая проблема:

  • OSX Leopard
  • MySQL 5.1
  • Рельсы 2.3.11

скрипт / консоль и скрипт / сервер работали нормально, но мои спецификации ошибались с

неинициализированная константа MysqlCompat :: MysqlRes

Похоже, решение состоит в том, чтобы использовать mysql2 вместо mysql. Не забудьте изменить адаптер подключения в database.yml

person Henry Collingridge    schedule 23.03.2011
comment
Я не могу переключиться на гем mysql2. Гем mysql отлично работает с терминала. Здесь нет никаких проблем. Я могу делать все, что мне нужно, через Терминал. Я нашел ответ. Выложу ниже. - person John Wang; 23.03.2011