簡體   English   中英

Heroku上的Rails 4,帶有“ protected_attributes” gem

[英]Rails 4 on Heroku with 'protected_attributes' gem

我不知道該怎么辦:我在我的項目上花了很多時間,這是一個針對大學生的招聘活動網站,但已經陷入僵局。

簡而言之,我走進了localhost-添加了諸如Devise之類的組件; 通過提供者Facebook,LinkedIn和Google進行Omniauth身份驗證-建立一個讓我感到驕傲的網站。 一切似乎都運行良好,但是一旦我推向“ heroku master”,事情就開始破爛了。

我認為問題最有可能發生在周圍或周圍:我有一個身份驗證模型來跟蹤單個用戶的身份驗證提供程序,以及用戶模型(其中保留了所有oauth代碼)。

事不宜遲,這是我的應用程序的heroku域和代碼:

http://lit-everglades-7633.herokuapp.com/
https://gist.github.com/mecampbellsoup/6357855

我懷疑與破壞有關的是:

  • 在'pg:reset'和'rake db:migrate'之后的'heroku run rake db:seed'...而不是使用種子文件本身的內容進行播種,而是創建一個空白的Event和Company; 下面的更多內容
  • 根據heroku日志(如下),與omniauth請求有關的路由和操作似乎工作正常,但實際上未創建用戶或身份驗證:

  • 重置postgres db后,當我嘗試運行'heroku run rake db:create'或'db:setup'時,我抱怨如下:

☁duke_recruits [master] heroku run rake db:setup
運行rake db:setup附加到終端...運行5886
嚴重:數據庫“ postgres”的權限被拒絕
詳細信息:用戶沒有CONNECT特權。

  • 同樣,“ heroku run rake db:seed” 似乎正在做它的事情,但是然后我的數據庫只有1個空Event和1個空Company:

ke duke_recruits [master] heroku run rake db:seed
正在運行rake db:seed附加到終端...運行1767

ke duke_recruits [master] heroku run rails c
rails c連接到終端...向上運行6135
Event.allLoading生產環境(Rails 4.0.0)
irb(main):001:0> Event.all
=> #ActiveRecord :: Relation [#Event id:1,標題:nil,位置:nil,描述:nil,日期:nil,結束日期:nil,company_id:nil,created_at:“ 2013-08-27 19:30: 06”,updated_at:“ 2013-08-27 19:30:06”]
irb(main):002:0> Company.all
=> #ActiveRecord :: Relation [#Company id:1,名稱:nil,描述:nil,網站:nil,徽標:nil,created_at:“ 2013-08-27 19:30:06”,updated_at:“ 2013- 08-27 19:30:06“]

日志(在heroku上打開應用並嘗試Google身份驗證時):

2013-08-27T19:49:18.701285 + 00:00 app [web.1]:在2013-08-27 19:49:18 +0000處以68.175.76.48的價格開始獲取“ /”
2013-08-27T19:49:18.701019 + 00:00 app [web.1]:=> Rails 4.0.0應用程序開始在http://0.0.0.0:49710上投入生產
2013-08-27T19:49:18.701019 + 00:00 app [web.1]:=> Ctrl-C關閉服務器
2013-08-27T19:49:18.701019 + 00:00 app [web.1]:=>正在啟動WEBrick
2013-08-27T19:49:18.701019 + 00:00 app [web.1]:=>運行`rails server -h`獲取更多啟動選項
2013-08-27T19:49:18.701019 + 00:00 app [web.1]:在2013-08-27 19:49:18 +0000處為68.175.76.48開始獲取“ /”
2013-08-27T19:49.19115 + 00:00 heroku [router]:at = info method = GET path = / host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 2ms服務= 442ms狀態= 304字節= 0
2013-08-27T19:49:19.221284 + 00:00 heroku [router]:at = info method = GET path = / assets / application-b44a43097f814ac98347f6802323e25f.js host = lit-everglades-7633.herokuapp.com fwd =“ 68.175。 76.48“ dyno = web.1 connect = 1ms服務= 12ms狀態= 304字節= 0
2013-08-27T19:49:49.440894 + 00:00 app [web.1]:在2013-08-27 19:49:49 +0000處以68.175.76.48的價格開始獲取“ /”
2013-08-27T19:49:49.440894 + 00:00 app [web.1]:在2013-08-27 19:49:49 +0000處以68.175.76.48的價格開始獲取“ /”
2013-08-27T19:49.515520 + 00:00 heroku [router]:at = info method = GET path = / host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 2ms服務= 80ms狀態= 304字節= 0
2013-08-27T19:50:48.534099 + 00:00 app [web.1]:在2013-08-27 19:50:48 +0000處以68.175.76.48的價格開始獲取“ /”
2013-08-27T19:50:48.534099 + 00:00 app [web.1]:在2013-08-27 19:50:48 +0000處以68.175.76.48的價格開始獲取“ /”
2013-08-27T19:50:48.575279 + 00:00 heroku [router]:at = info method = GET path = / host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 1ms服務= 51ms狀態= 304字節= 0
2013-08-27T19:50:52.293922 + 00:00 app [web.1]:在2013-08-27 19:50:52 +0000處以68.175.76.48的價格開始獲取“ / users / sign_up”
2013-08-27T19:50:52.293922 + 00:00 app [web.1]:在2013-08-27 19:50:52 +0000處以68.175.76.48的價格開始獲取“ / users / sign_up”
2013-08-27T19:50:52.591752 + 00:00 heroku [router]:at = info method = GET path = / users / sign_up host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 1ms服務= 307ms狀態= 304字節= 0
2013-08-27T19:51:00.368352 + 00:00 app [web.1]:在2013-08-27 19:51:00 +0000處以68.175.76.48的價格開始獲取“ / users / auth / google_oauth2”
2013-08-27T19:51:00.368352 + 00:00 app [web.1]:在2013-08-27 19:51:00 +0000處以68.175.76.48的價格開始獲取“ / users / auth / google_oauth2”
2013-08-27T19:51:00.368926 + 00:00 app [web.1]:我,[2013-08-27T19:51:00.368823#2]信息-omniauth:(google_oauth2)請求階段已啟動。
2013-08-27T19:51:00.392262 + 00:00 heroku [router]:at = info method = GET path = / users / auth / google_oauth2 host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 3ms service = 33ms status = 302字節= 469
2013-08-27T19:51:00.715597 + 00:00 app [web.1]:在2013-08-27 19:51:00 +0000處以68.175.76.48的價格開始獲取“ / users / auth / google_oauth2”
2013-08-27T19:51:00.715597 + 00:00 app [web.1]:在2013-08-27 19:51:00 +0000處以68.175.76.48的價格開始獲取“ / users / auth / google_oauth2”
2013-08-27T19:51:00.716822 + 00:00 app [web.1]:I,[2013-08-27T19:51:00.716706#2] INFO-omniauth:(google_oauth2)請求階段已啟動。
2013-08-27T19:51:00.997866 + 00:00 app [web.1]:開始GET“ / users / auth / google_oauth2 / callback?state = 40ecfd10739cb874b5c461fc00cfd72ec4fcb694ef3a6878&code = 4 / D_(omitted_for_security)_GBLyYQYyQYyQYyQYyQ在2013-08-27 19:51:00 +0000時為68.175.76.48
2013-08-27T19:51:00.997866 + 00:00應用程式[web.1]:開始GET “/users/auth/google_oauth2/callback?state=10739cb874b5c461fc00cfd72ec4fcb694ef3a6878&code=4/D_GBlmiYhY1rCvgdgE9yth.QpxI3jdcGpYYshQV0ieZDAoQOqyCgQI” 為68.175.76.48在2013-08 -27 19:51:00 +0000
2013-08-27T19:51:00.998508 + 00:00 app [web.1]:I,[2013-08-27T19:51:00.998379#2] INFO-omniauth:(google_oauth2)回調階段已啟動。
2013-08-27T19:51:02.188467 + 00:00 app [web.1]:在2013-08-27 19:51:02 +0000處以68.175.76.48的價格開始獲取“ / users / sign_up”
2013-08-27T19:51:02.188467 + 00:00 app [web.1]:在2013-08-27 19:51:02 +0000處以68.175.76.48的價格開始獲取“ / users / sign_up”
2013-08-27T19:51:02.234644 + 00:00 heroku [router]:at = info method = GET path = / users / sign_up host = lit-everglades-7633.herokuapp.com fwd =“ 68.175.76.48” dyno = web.1 connect = 9ms服務= 52ms狀態= 304字節= 0

請讓我知道您對我有什么疑問,以及我是否可以澄清任何問題。 非常感謝您的寶貴時間,並提供幫助!

在pg:reset之后,您可以運行create命令,但是它通常會為您提供如下輸出:

slkdjfs0dslkd already exists

因此,您將知道數據庫已創建並可以使用。 在確定種子之前,請確保已遷移。 只是標准的Heroku方式

heroku run rake db:migrate

然后照常播種

heroku run rake db:seed

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM