Phusion Passenger - маршрут существует, но не соответствует (вместо этого выдает 404)

Я запускаю приложение rails 3 на корневом уровне в среде пассажира phusion (CentOS, apache), и мне трудно заставить пассажира найти некоторые маршруты, хотя rake routes правильно показывает маршруты. В разработке все работает нормально (т.е. с использованием rails server вместо phusion пассажира в apache).

У меня есть раздел администратора для моего приложения со страницей входа. Основная часть приложения работает, но все в разделе администратора недоступно, потому что я получаю 404 вместо страницы входа (когда я отключаю вход, я могу получить доступ к страницам администратора). Моя конфигурация апача

<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"):

Насколько я могу судить, он должен работать... за исключением того факта, что это не так. Любая помощь будет принята с благодарностью!


person Chris    schedule 13.07.2011    source источник


Ответы (1)


Вы пытались получить доступ с помощью https://? Похоже, вы установили ограничения для предотвращения доступа с http://, а ссылка, которую вы разместили, ссылается на http://.

person salt.racer    schedule 13.07.2011
comment
Святая корова, я чувствую себя тупым сейчас - это была проблема. Спасибо! - person Chris; 13.07.2011