Синатра-аутентификация драгоценный камень не ищет правильные взгляды? - PullRequest
2 голосов
/ 04 марта 2011

Я пытаюсь написать для себя небольшой движок для блогов в sinatra и mongoid и пытаюсь использовать гем sinatra-authentication для входа / выхода.

Я получил работу sinatra, mongoid и haml, но когда я захожу на любую страницу аутентификации sinatra, nginx выдает внутреннюю ошибку сервера.

это ошибка, которую я получаю

Errno::ENOENT - No such file or directory -     /opt/nginx/html/raptor.patrickarlt.com/views/layout.haml:

Вы можете увидеть все мои файлы, включая другие, из моего журнала ошибок nginx здесь https://gist.github.com/854156

получить '/' работы, подтверждающие, что Синатра работает
get '/ haml' работает, подтверждая, что haml работает
get '/ private' перенаправляет на '/ login', подтверждая, что sinatra-аутентификация работает
get '/ login' внутренняя ошибка сервера

Рубин 1.9.2
Nginx 0.8.54
Пассажир 3.0.2

1 Ответ

1 голос
/ 04 марта 2011

sinatra-authentication предполагает, что вы используете макет, если текущий запрос не является XMLHttpRequest (см. код ).У вас есть два варианта:

  1. Создать макет для вашего приложения в views/layout.haml, как описано в нескольких параграфах вниз по адресу http://sinatra -book.gittr.com / # templates
  2. Переопределить метод use_layout? аутентификации синатры следующим образом:

    module Sinatra
      module Helpers
        def use_layout?
          false
        end
      end
    end
    
...