【发布时间】:2011-05-14 05:30:19
【问题描述】:
我正在使用 Rails (v3.0.5) 编写一个应用程序,并将其部署到 Heroku。
当我在我的开发环境中访问http://localhost:3000/places/new 时,我会被带到相应的页面(用于创建新位置的表单)。一切都按预期工作(我可以创建新地点)。
当我尝试在我的 Heroku 生产环境中访问相应的页面 (http://example.heroku.com/places/new) 时,我会被路由回我的应用程序的主页。/places/new强>
我的 routes.db 文件的内容:
ExampleSite::Application.routes.draw do
resources :users
resources :sessions, :only => [:new, :create, :destroy]
resources :places
root :to => 'pages#home'
match '/contact', :to -> 'pages#contact'
match '/about', :to -> 'pages#about'
match '/signin', :to -> 'sessions#new'
match '/signout', :to -> 'sessions#destroy'
end
开发和生产之间的差异可能是什么原因?
注意:到目前为止,我在“places”控制器中构建的唯一操作是“new”和“create”(这两个操作都在开发环境中按预期执行)。不确定这是否相关,但请记住这一点。此外,所有“用户”操作和路线似乎在开发和生产中都按预期工作。
编辑:正如下面评论中所述,/places/new 是一个受身份验证保护的页面,但在这两种情况下,我都会在登录时尝试此操作。此外,当我尝试访问 /places/new 时在未登录的生产环境中,适当的重定向(到我的 /signin 页面)按预期工作。
我尝试获取 /place/new 的 Heroku 日志:
2011-05-12T23:37:30+00:00 app[web.1]: Started GET "/places/new" for 74.87.126.82 at Thu May 12 16:37:30 -0700 2011
2011-05-12T23:37:30+00:00 app[web.1]: Processing by PlacesController#new as HTML
2011-05-12T23:37:30+00:00 app[web.1]: Redirected to http://example.heroku.com/
2011-05-12T23:37:30+00:00 app[web.1]: Completed 302 Found in 4ms
2011-05-12T23:37:30+00:00 heroku[router]: GET example.heroku.com/places/new dyno=web.1 queue=0 wait=0ms service=9ms bytes=631
2011-05-12T23:37:30+00:00 app[web.1]:
2011-05-12T23:37:30+00:00 app[web.1]:
2011-05-12T23:37:30+00:00 app[web.1]: Started GET "/" for 74.87.126.82 at Thu May 12 16:37:30 -0700 2011
2011-05-12T23:37:30+00:00 app[web.1]: Processing by PagesController#home as HTML
2011-05-12T23:37:30+00:00 app[web.1]: Rendered layouts/_header.html.erb (4.3ms)
2011-05-12T23:37:30+00:00 app[web.1]: Rendered pages/home.html.erb within layouts/application (5.7ms)
2011-05-12T23:37:30+00:00 app[web.1]: Completed 200 OK in 7ms (Views: 3.5ms | ActiveRecord: 5.8ms)
2011-05-12T23:37:30+00:00 heroku[router]: GET example.heroku.com/ dyno=web.1 queue=0 wait=0ms service=14ms bytes=2357
【问题讨论】:
-
您是否有某种身份验证可能会失败并将您重定向回主页?
-
有身份验证,但在这两种情况下,我都在登录时尝试这样做。此外,我的会话检查器设置为重定向到 /signin 页面 (sessions#new) 并给出“请登录”闪存(在这种情况下都不会发生)。
-
我刚刚在未登录的情况下尝试在生产环境中访问/places/new,并且身份验证重定向(在我的上一条评论中描述)按预期工作。
-
你在使用 Cancan 吗?
-
@twmills 我没听说过 Cancan,它不在我的 Gemfile 中。
标签: ruby-on-rails ruby-on-rails-3