Ошибка метода при запуске Padrino - PullRequest
3 голосов
/ 27 декабря 2010

к сожалению потерялся в начале. Создано первое test_app с использованием официального руководства http://www.padrinorb.com/

При попытке запуска приложения "padrino start" сервер работает хорошо в консоли, но как только я пытаюсь увидеть его в браузере, появляется это сообщение об ошибке:

NoMethodError в / admin / undefined метод `соответствует? ' для ноля: NilClass файл: routing.rb расположение: линия маршрута: 66

Также я не вижу значок, и консоль говорит, что не может найти его.

(Пробовал с Тонким, а также с Вебриком. Я использую Ubuntu с RVM Ruby1.9 Gem 1.3.7 Rails3. Обновлены драгоценные камни Синатры и Падрино, произведена очистка.)

Большое спасибо, gezope

Ответы [ 2 ]

6 голосов
/ 28 декабря 2010

Лучшим решением, вероятно, является прикрепление используемой вами версии sinatra к версии, совместимой с sinatra 0.9.19. Синатра 1.1.0 прекрасно работает для меня. Для этого добавьте эту строку в ваш Gemfile:

gem 'sinatra', '1.1.0'

и звоните

bundle update

С этого момента вы будете использовать bundle exec padrino.

1 голос
/ 27 декабря 2010

Это быстрый взлом, который может решить эту проблему.Вероятно, это должно быть решено во фреймворке, но, по крайней мере, вы можете решить это прямо сейчас, чтобы продолжить работу:

В моей системе я изменил следующий файл (при условии, что вы используете упаковщик) (примечание:полный путь к файлу был указан, когда вы нажали «развернуть» вверху страницы с ошибкой, которую генерирует Padrino): file: .bundle / ruby ​​/ 1.8 / gems / padrino-core-0.9.19 / lib / padrino-core / application / routing.rb

Оригинальный (это не удастся) код:

   def route
      match.matched? ? match.path.route : nil  # NOTE: this is line 66 in routing.rb
    end

Новый код (хак, но он работает и займет у вас около минуты)

   def route
      (!match.nil? && match.matched?) ? match.path.route : nil
    end

Удачи!

...