好吧,這是越來越令人沮喪,接下來的一個問題。我推送我的應用程序到heroku,當我訪問url時,我得到我的登錄屏幕(我應該)。但是當我真正嘗試登錄時,它會給我提供「無效的用戶名/密碼」警告消息。然而,一切工作正常我的本地主機。我假設應用程序與我的數據庫進行通信時出現問題。我跑了「heroku跑耙db:遷移」,沒有運氣。登錄無法與heroku應用程序
在我的本地主機上,我使用的是標準sqlite3數據庫,但是當我將它推送到heroku以避免錯誤時,我不得不在gem文件中包含gem'pg'。當我離開它作爲寶石sqlite3我收到一個錯誤,說它無法找到sqlite3.h文件或這種性質的東西。
我可以看到我的數據庫生活在postgres.heroku.com。我已經通過的Heroku的支持
寶石的建議還安裝了這種寶石的ActiveRecord-PostgreSQL的適配器「
下面是一些的Heroku日誌時我嘗試輸入登錄信息。任何幫助是極大的讚賞。
←[36m2013-04-04T14:31:15+00:00 app[web.1]:←[0m Started POST "/session" for 74.143.68.203 at 2013-04-04 14:31:15 +0000
←[36m2013-04-04T14:31:15+00:00 app[web.1]:←[0m Processing by SessionsController#create as HTML
←[36m2013-04-04T14:31:15+00:00 app[web.1]:←[0m Parameters: {"utf8"=>"???", "authenticity_token"=>"rQ1i9DRCV3qju2+RSBwp/9XYW8+6RiLfKfGZFNEcbT8=", "email"=>"[email protected]", "password"=>"[FILTERED]", "commit"=>"Login"}
←[36m2013-04-04T14:31:15+00:00 app[web.1]:←[0m Rendered sessions/new.html.erb within layouts/application (0.9ms)
←[36m2013-04-04T14:31:15+00:00 app[web.1]:←[0m Completed 200 OK in 4ms (Views: 2.2ms | ActiveRecord: 1.2ms)
←[33m2013-04-04T14:31:16+00:00 heroku[router]:←[0m at=info method=GET path=/favicon.ico host=boiling-reef-2060.herokuapp.com fwd="74.143.68.203" dyno=web.1 connect=2ms service=7ms status=304 bytes=0
←[33m2013-04-04T14:31:15+00:00 heroku[router]:←[0m at=info method=POST path=/session host=boiling-reef-2060.herokuapp.com fwd="74.143.68.203" dyno=web.1 connect=1ms service=12ms status=200 bytes=1721
我只是不明白爲什麼當我的應用程序是在本地主機上使用相同的用戶名我可以登錄/密碼,但是當應用程序是在Heroku它無法識別的登錄信息。
附加編輯_ __ _ __ _ __ _ ____
我打開控制檯我的本地應用程序,並找到了我的預期尋找一個用戶時:
$ rails c
Loading development environment (Rails 3.2.13)
irb(main):001:0> user=User.find(1)
←[1m←[36mUser Load (5.0ms)←[0m ←[1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1←[0m [["id", 1]]
=> #<User id: 1, email: "[email protected]", hashed_password: "dc009272b087019fb2b20b691dc827dca1424a1a", created_at: "2010-10-29 19:43:00", updated_at: "2011-01-12 20:07:09", admin: "yes", logo: nil>
當我在heroku上打開控制檯時發現這是我收到的錯誤。我會繼續尋找修復,但也許你們會看到一個明顯的紅旗。
Connecting to database specified by DATABASE_URL
Loading production environment (Rails 3.2.13)
irb(main):001:0> user=User.find(1)
user=User.find(1)
User Load (39.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]]
ActiveRecord::RecordNotFound: Couldn't find User with id=1
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.13/lib/active_record/relation/finder_methods.rb:343:in `find_one'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.13/lib/active_record/relation/finder_methods.rb:314:in `find_with_ids'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.13/lib/active_record/relation/finder_methods.rb:107:in `find'
from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.13/lib/active_record/querying.rb:5:in `find' from (irb):1
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
通常你的'開發'和'生產'環境會引用不同的數據庫,所以同樣的登錄不一定適用於這兩者。這裏發生了什麼? – Hbcdev 2013-04-04 15:18:47
我的本地db文件夾中沒有生產數據庫。我之前通過推拉我的計算機上的開發數據庫來維護一箇舊的heroku應用程序。當我在本地添加記錄並推送它們時,更改將對heroku託管的應用程序產生影響。我從來沒有指定使用不同的用戶名/密碼。 – RubyDude1012 2013-04-04 15:26:27
檢查什麼是運行在遠程控制檯 'Heroku的你的Heroku數據庫運行軌道console'和您的用戶模型 – Trompa 2013-04-04 15:34:09