Ruby on rails неопределенный метод `where’ для #

#mysql #ruby-on-rails #macos

#mysql #ruby-on-rails #macos

Вопрос:

Я пытаюсь перейти с Windows 7 на mac osx. Я установил следующее

  1. ruby 1.8.7 (174-й уровень исправления 2009-06-12) [universal-darwin10.0]
  2. mysql Версия 14.14 Дистрибутив 5.1.56, для Apple-darwin10.3.0 (i386) с использованием readline 5.1

После долгих усилий я установил свой sql gem с помощью: sudo env ARCHFLAGS=»-arch x86_64″ gem install —no-rdoc —no-ri mysql — —with-mysql-config=/usr/local/mysql/ bin/mysql_config

Но все равно, когда я запускаю свой проект в netbeans, я получаю следующую ошибку

[4;36;1mUser Столбцы (31,5 мс)[0m
[0;1mSHOW ПОЛЯ ИЗ users [0m
[4;35;1mSQL (1,2 мс)[0m [0mSHOW ТАБЛИЦЫ[0m /! ОТКАЗОУСТОЙЧИВЫЙ /! Ср. 04 мая 09:53:16 0530 2011 Статус: 500 Ошибка внутреннего сервера неопределенный метод `where’ для

Кто-нибудь может сказать мне, что я делаю не так?

Миграции базы данных работают отлично.

Ответ №1:

Вы прекратили копирование трассировки стека прямо в тот момент, когда она собиралась сообщить вам, где возникает ошибка. Просмотрите трассировку стека для первого упоминания любого кода из вашего приложения (в отличие от gems или папки поставщика), и это должно указать вам на проблемную строку.

Ответ №2:

К сожалению, у вас так много времени на установку MySQL gem, но это может быть сложно, если вы загружаете его на компьютер с нуля, на котором отсутствуют заголовки разработки, что требуется для компиляции расширения, и ваш path не включает /usr/local/mysql/bin что является обычным.

Вы можете исправить это, создав файл /etc/paths.d/mysql со следующим:

 /usr/local/mysql/bin
  

Обычно после этого вам просто нужно будет указать mysql в вашем Gemfile , и он должен устанавливаться обычным образом с bundle install .

Что касается ошибки, похоже, что-то более глубокое в вашем приложении, которое выбивает прокладку. Когда вы говорите «запустите свой проект в netbeans», вы имеете в виду запуск модульных тестов? Похоже, вы вызываете where что-то, что его не поддерживает.

Ответ №3:

Это похоже на ошибку приложения. Сервер сбрасывает 500, когда ему не удается оценить метод ‘where’, вероятно, где-то в вашем коде.

Современные операционные системы Mac (забудьте, какая была первой) поставляются с предустановленными ruby и rails — не уверен, связано ли это с вашими настройками.

Что происходит при запуске

 rails server
  

с консоли (из каталога приложения)?

Комментарии:

1. это генерирует новый проект.. поскольку я все еще использую rails 2.3.5

Ответ №4:

where является ли ActiveRecord 3 методом класса AREL, используемым для условий.

Перво-наперво, установлен ли у вас XCode? это обязательное условие для установки любых собственных драгоценных камней. Вы можете загрузить XCode 3 с сайта Apple или купить XCode 4 в app Store.

Требуется больше трассировки стека.

В идеале, однако, после установки XCode вам следует взглянуть наhttps://rvm.io — это предпочтительный способ управления rubies в системах Unixy.

Ответ №5:

Спасибо, ребята.. Я, наконец, обнаружил, что ошибка была связана с authlogic gem, который я установил 3.0.2, и для приложения требуется более старая версия 2.x