Ruby on rails 3 Rails-401仅在生产中访问操作时未经授权

Ruby on rails 3 Rails-401仅在生产中访问操作时未经授权,ruby-on-rails-3,devise,Ruby On Rails 3,Devise,我使用的是RubyonRails3.0.9,在DevelopmentEnv上一切都很好。当我切换到Production env或将其上载到服务器时,在登录后,我将返回到同一登录页面。当我查看日志时,我可以看到以下内容: Started POST "/users/login" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013 Processing by UserSessionsController#create as HTML Paramete

我使用的是RubyonRails3.0.9,在DevelopmentEnv上一切都很好。当我切换到Production env或将其上载到服务器时,在登录后,我将返回到同一登录页面。当我查看日志时,我可以看到以下内容:

Started POST "/users/login" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
  Processing by UserSessionsController#create as HTML
  Parameters: {"user"=>{"password"=>"[FILTERED]", "login"=>"demo_admin"}, "utf8"=>"✓", "authenticity_token"=>"+7AEoVXZ9XiagEymVUnOhFHnck4rgDu883E/ySMlCxQ="}
Redirected to http://localhost:3000/admin
Completed 302 Found in 111ms


Started GET "/admin" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
  Processing by Admin::DashboardController#index as HTML
Completed 401 Unauthorized in 1ms
我使用authorization_rules文件来管理访问,但我在Dev env上没有问题,正如我前面所说的

如果我在
admin/dashboard#index
操作处放置断点,则不会执行该操作,因为无法到达该操作。它在httpserver文件处中断(我一步一步地调试了它),但我无法理解为什么它在Dev上工作而在Prod env上不工作

请帮忙

谢谢, 布莱恩

更新

我不想提及,在我的
ApplicationController
中,有一个名为
check\u plan\u features
的before\u过滤器,它要求的第一件事是
,除非当前用户为空#重定向到管理部分


我注意到,在使用designe登录后,
current_user
具有用户的值,但在重定向到admin部分后,它返回到同一个过滤器,而这一次,
current_user
为空所以,我假设,不知何故,用户的会话在尝试访问管理部分后被破坏。但是,由于这只发生在生产环境中,我仍然想知道会发生什么。

我刚刚遇到了这个确切的问题(使用rails 4和Desive 3)

解决方案是向
config/initializers/session_store.rb
文件添加域声明,如下所示:

YourAppName::Application.config.session_store :cookie_store, key: '_your_session', domain: {
  production: 'production_domain',
  development: 'development_domain'
}.fetch(Rails.env.to_sym, :all)

尽管这一点很重要,因为在应用程序中添加了子域,所以最初对其进行了更改。

我遇到了类似的问题。刚刚修好了。不确定你是否面临同样的问题。我的问题是我愚蠢地将这个添加到user.rb`在验证do self.roles=[“normal”]if roles.blank之前?如果password.blank?self.password=DEFAULT\u password self.password\u confirmation=DEFAULT\u password end end`……你找到答案了吗?@brian roisentul你是怎么解决的?我遇到了确切的问题。这对我不起作用,而且,我在开发中在本地主机上获得了ActionController::InvalidAuthenticationToken。