Я запускаю приложение rails 3 на корневом уровне в среде фьюжн-пассажиров (CentOS, apache) и испытываю трудности с поиском пассажиром некоторых маршрутов, хотя rake routes
показывает маршруты правильно.В разработке все работает нормально (то есть, используя rails server
вместо phusion passenger в apache).
У меня есть раздел администратора для моего приложения со страницей входа.Основная часть приложения работает, но все, что находится в разделе администратора, недоступно, потому что я получаю 404 вместо страницы входа в систему (когда я отключаю вход в систему, я могу получить доступ к страницам администратора).Моя конфигурация apache:
<VirtualHost *:80>
ServerName foo.bar.com
DocumentRoot /var/www/apps/myapp/current/public
<Directory /var/www/apps/myapp/current/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Мой процесс входа в систему реализован как before_filter в контроллере администратора:
class Admin::AdminController < ApplicationController
# login disabled for testing
before_filter :require_login
def require_login
@current_user ||= User.find_by_id(session[:user_id])
redirect_to admin_login_path unless @current_user
end
end
Мой файл маршрутов имеет
Mpf::Application.routes.draw do
secure_protocol = "https://"
...
namespace "admin" do
...
match "login" => "user_sessions#new", :as => :login, :constraints => { :protocol => secure_protocol }
...
end
...
end
и когдаЯ запускаю рейк-маршруты. Я получаю
admin_login /admin/login(.:format) {:protocol=>"http://", :action=>"new", :controller=>"admin/user_sessions"}
НО, когда я пытаюсь получить доступ к http://foo.bar.com/admin, я получаю 404, и журнал показывает
Started GET "/admin/login" for iii.iii.iii.iii at 2011-07-13 07:20:41 -0400
ActionController::RoutingError (No route matches "/admin/login"):
Насколько я могу судитьэто должно работать ... за исключением того факта, что это не так.Любая помощь будет принята с благодарностью!