У меня есть приложение padrino, разработанное с использованием jruby on linux, которое отлично работает. Однако, когда я развернуть его Tomcat на Windows 7 с помощью камышевки, я получаю следующее сообщение об ошибке при обращении к странице:Приложение Padrino не загружает пользовательские помощники при развертывании в tomcat windows 7
undefined local variable or method `authenticate' for #<MyApp:0x480ebb>
file: app.rb
C:/Program Files (x86)/Apache Software Foundation/Tomcat 8.0/webapps/theapp/WEB-INF/app/app.rb in MyApp
authenticate
C:/Program Files (x86)/Apache Software Foundation/Tomcat 8.0/webapps/theapp/WEB-INF/gems/gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb in filter!
base.filters[type].each { |block| instance_eval(&block) }
Здесь виновная линия в приложении/app.rb:
class MyApp < Padrino::Application
# lots of standard code
register Padrino::Helpers
before do
authenticate
end
end
И это вспомогательный файл: app/helpers/auth_helper.rb. (Первоначально помощник был объявлен MyApp.helpers do
, я попытался сменить его на модуль, но не повезло).
class MyApp
module AuthHelper
def logged_in?
session[:user].present?
end
def authenticate
if !logged_in?
# Allow login page to be seen
allowed_urls = ['/','/login', '/account/activate', '/account/register']
return if allowed_urls.include? request.path_info
end
if logged_in?
@user = session[:user]
else
redirect to('/login')
end
end
def logout
@user = nil
session.clear if logged_in?
redirect to('/login')
end
end
helpers AuthHelper
end
Обновление: Я никогда не работал, почему я не мог получить кот работать с моим приложением, и он не был воспроизведен человеком из Padrino сообщества. Я переехал в Джетти, который решил проблему.
'' 'include HelperModule''' просто производит неинициализированную постоянную ошибку. У меня есть '' 'register Padrino :: Helpers''' в app.rb. – kristianp