Rails 3子域
我想将我的应用程序发布到一组选定的个人以进行私人测试。我为此任务创建了一个子域:beta.company.com。Rails 3子域
应用程序按预期在我的工作站上运行,但是当我将它推送到服务器时,应用程序会不断地路由回到验证页面。仅供参考,我使用的是声明式授权,authlogic和Passenger。
的routes.rb:
#Application controller
match "/not_authorized", :to => "application#not_authorized", :as => :not_authorized
#UserSessions controller
match "/quit", :to => "user_sessions#destroy", :as => :quit
match "/authenticate", :to => "user_sessions#new", :as => :authenticate
resources :user_sessions, :only => :create
#Users controller
match "/enroll", :to => "users#new", :as => :enroll
# root url
root :to => "users#index"
症状:
- 匿名途径(例如user_sessions#创建,NOT_AUTHORIZED)如预期的匿名工作。用户
- 的应用程序运行如预期我的工作站
。当我看着production.log,我看到这样一个条目:通过UsersController#指数HTML 权限
加工否认: #@role_symbols = [:guest]>(roles [:guest],privileges [:index,:read,:manage],context:users)的索引找不到匹配的规则。 重定向到http://beta.company.com/authenticate
**编辑**
其一,没有一个UsersController#index动作,如果有,匿名用户将无法访问它。我很困惑它为什么试图路由那里(而不是根url,这是成功的身份验证后应该去的地方)。
这看起来像是一个子域特定的路由问题,但我无法确定。
更仔细地重读这个'错误'。有一个UserController#索引操作,匿名用户不应该有权访问它。乍一看,我认为它读取UserSessionController#index,这是不存在的操作。
现在,似乎认证的用户没有被创建或保存,因此正被重新路由回UserSession#new action(AKA认证路径)。
**/**编辑
**编辑** II
我从cookie_store改为active_record_store:
# cookie store
# MyApp::Application.config.session_store :cookie_store, :key => '_myApp_session'
# active-record store
MyApp::Application.config.session_store :active_record_store
新增的表($耙分贝:会话:创建) ,迁移($ rake db:migrate),重新启动Apache($ touch tmp/restart.txt),清除浏览器的缓存,然后重新启动浏览器。
会话已成功添加到会话表中,但我仍然遇到问题。
** /编辑II **
想法是非常感激。
该问题与控制器中的SELECT语句有关。 SELECT语句中的表名称区分大小写,“SELECT Users。*”导致错误。出于某种原因,这个错误没有被包含在production.log文件中。随后的部署(不使用Capistrano)做了一些事情(我仍然不知道如何),以便将此错误包含在production.log文件中。
现在,如果我可以确定那是什么东西...
对于初学者...
其一,没有一个UsersController#index动作,如果有,匿名用户将无法访问它。我很困惑它为什么试图路由那里(而不是根url,这是成功的身份验证后应该去的地方)。
您的根网址是UsersController#指数:
# root url
root :to => "users#index"
检查以确保您设置的测试域的cookie。您可能正在重定向或设置使用完整网址的链接(而不仅仅是路径,因此user_url(@user)
vs user_path(@user)
),这会导致您直接进入根域。
我想我没有仔细阅读日志 - 编辑帖子。如何在Beta版域上设置Cookie(必须与我现在所做的不同)?成功的身份验证会路由到“root_url”。您建议改为路由到users_path,对吗? – craig 2011-02-09 14:54:21