#ruby-on-rails #rubygems #bundler
#ruby-on-rails #rubygems #bundler
Вопрос:
ОБНОВЛЕНИЕ: эта проблема возникла просто из-за того, что приложение имело существующий класс под названием StateMachine… смотрите раздел ответов.
Привет,
У меня возникла раздражающая проблема: после добавления state_machine в мой пакет для приложения Rails 2.3.11 что-то ломается.
Симптомы:
- похоже, что поставщик / плагины не загружены — по крайней мере, acts_as_paranoid и acts_as_lists, что приводит к «неопределенному методу ‘acts_as_paranoid» и т.д.
- удаляя эти плагины, пытаясь сузить проблему, я получаю «неопределенный метод ‘state_machine'», указывающий, что драгоценный камень state_machine также не загружен, хотя он определен в пакете (да, я запустил ‘bundle install’ и проверил, что он попал)
Это намекает мне, что что-то не так при загрузке / выгрузке драгоценных камней и плагинов rails, и что камень state_machine может вызвать это. Я пробовал почти со всеми версиями state_machine от 0.7.0 до 1.0.0
Мой вопрос: Где искать информацию, чтобы намекнуть мне, что не так?
Я мало знаю об отладке Rails во время загрузки — так что любые указания приветствуются 🙂
Ответ №1:
Проблема, по-видимому, была связана с конфликтом именования, поскольку в приложении уже был класс observer под названием StateMachine.
class StateMachine < ActiveRecord::Observer
observe :modelname
...
Так что, глупый я, должен был знать.
Я решил проблему, создав отдельное приложение, добавляя материал понемногу, пока случайно не наткнулся на «нарушающий» код. Тем не менее, кажется, что структурированное решение проблемы было правильным решением.
Хотя мне могло бы пригодиться больше знаний о жизненном цикле во время загрузки и отладки.