2013-08-27 3 views
2

Я не знаю, куда еще повернуть с этим: я потратил много часов на мой проект, сайт для рекрутинговых мероприятий для студентов колледжа, но достиг совершенно тупиковой ситуации.Rails 4 на Heroku с драгоценным камнем 'protected_attributes

Одним словом, я плюхнулся в локальном хосте - добавив такие компоненты, как Devise; Проверка Omniauth через поставщиков Facebook, LinkedIn и Google - создание веб-сайта, которым я был горд по пути. Все, казалось, прекрасно работало, но как только я подтолкнул к «мастеру герою», все началось с большого времени.

Я думаю, что проблемы, скорее всего, в или вокруг: У меня есть Authentication модели для отслеживания поставщиков аутентификации одного пользователя, наряду с пользователем модели (где хранятся весь код OAuth).

Без дальнейших церемоний, вот домен Heroku мое приложение и мой код:

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

То, что нарушение, которое я подозреваю, связаны:

  • «Heroku запустить грабли БД : seed 'following' pg: reset '&' rake db: migrate '... вместо посева с содержимым самого файла семян создается единственное пустое событие и компания; подробнее об этом ниже
  • маршрутизации и действий, относящихся к OmniAuth запроса, кажется, работает нормально, согласно журналам Heroku (ниже), но ни один пользователь ни аутентификации фактически не создано:

  • , когда после сброса Postgres БД, я пытаюсь запустить «Heroku запустить грабли БД: создать» или «дБ: установка» Я заскулил в следующим образом:

☁ duke_recruits [мастер] Heroku запустить грабли БД: настройки
Запуск rake db:setup подключен к терминалу ... вверх, запустите .5886
FATAL: разрешение отклонено для базы данных "postgres"
ДЕТАЛИ: У пользователя нет привилегии CONNECT.

  • также 'Heroku запустить грабли DB: семя' появляется будет делать свое дело, но тогда мой дб имеет только 1 пустое событие и 1 пустой Компания:

☁ duke_recruits [мастер] Heroku запустить грабли БД: семена
Запуск rake db:seed подключен к клемме ... вверх, run.1767

☁ duke_rec укты [мастер] Heroku пробег рельсы с
Запуск rails c прикрепленную к терминалу ... вверх, среда run.6135
Event.allLoading производства (Rails 4.0.0)
IRB (основной): 001: 0> Event.все
=> #ActiveRecord :: Relation [#Event id: 1, title: nil, location: nil, description: nil, date: nil, end_date: 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"]

Logs (при открытии приложения на Heroku и пытается аутентификации Google):

2013-08-27T19: 49: 18.701285 + 00: 00 приложение [web.1]: начато GET «/» для 68.175.76.48 в 2013-08-27 19:49:18 +0000
2013-08-27T19 : 49: 18.701019 + 00: 00 приложение [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 приложение [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 приложение [web.1]: начато GET "/" за 68.175.76.48 в 2013-08-27 19:49:18 +0000
2013-08-27T19: 49: 19.131115 + 00: 00 heroku [router]: at = info met hod = GET path =/host = lit-everglades-7633.herokuapp.com fwd = "68.175.76.48" dyno = web.1 connect = 2ms service = 442ms status = 304 bytes = 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 service = 12ms status = 304 bytes = 0
2013-08-27T19: 49: 49.440894 + 00: 00 приложение [web.1]: начато GET «/» для 68.175.76.48 в 2013-08-27 19 : 49: 49 +0000
2013-08-27T19: 49: 49.440894 + 00: 00 приложение [web.1]: начато GET «/» для 68.175.76.48 в 2013-08-27 19:49:49 +0000
2013-08-27T19: 49: 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 service = 80 мс atus = 304 bytes = 0
2013-08-27T19: 50: 48.534099 + 00: 00 приложение [web.1]: начато GET «/» для 68.175.76.48 в 2013-08-27 19:50:48 +0000
2013-08-27T19: 50: 48.534099 + 00: 00 приложение [web.1]: начато GET «/» для 68.175.76.48 в 2013-08-27 19:50:48 +0000
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 service = 51 мс = 304 байта = 0
2013-08-27T19: 50: 52.293922 + 00: 00 приложение [web.1]: начато GET «/ users/sign_up» для 68.175.76.48 в 2013-08-27 19: 50:52 +0000
2013-08-27T19: 50: 52.293922 + 00: 00 приложение [web.1]: начато GET «/ users/sign_up» для 68.175.76.48 в 2013-08-27 19:50:52 +0000
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 service = 307ms status = 304 bytes = 0
2013-08-27T19: 51: 00.368352 + 00: 00 приложение [web.1]: начато GET «/ users/auth/google_oauth2» для 68.175 .76.48 в 2013-08-27 19:51:00 +0000
2013-08-27T19: 51: 00.368352 + 00: 00 приложение [web.1]: начато GET «/ users/auth/google_oauth2» для 68.175. 76.48 в 2013-08-27 19:51:00 +0000
2013-08-27T19: 51: 00.368926 + 00: 00 приложение [web.1]: I, [2013-08-27T19: 51: 00.368823 # 2 ] INFO - 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 bytes = 469
2013-08-27T19: 51: 00.715597 + 00: 00 приложение [web.1]: начато GET "/ users/auth/google_oauth2" для 68.175.76.48 в 2013-08-27 19:51:00 +0000
2013-08-27T19: 51: 00.715597 + 00: 00 приложение [web.1]: начато GET «/ users/auth/google_oauth2» за 68.175.76.48 в 2013-08-27 19:51:00 +0000
2013-08-27T19: 51: 00.716822 + 00: 00 приложение [web.1]: I, [ 2013-08-27T19: 51: 00.716706 # 2] INFO - omniauth: (google_oauth2) Начальная фаза запроса.
2013-08-27T19: 51: 00,997866 + 00: 00 Приложения [web.1]: Начало GET «/ пользователи/аутентификация/google_oauth2/обратный вызов состояние = 40ecfd10739cb874b5c461fc00cfd72ec4fcb694ef3a6878 & код = 4/D_ (omitted_for_security) _GBlmiYhY (partially_omitted) E9yth?. QpxI3jdcGpYYshQV0ZZoQQQQQQQI "за 68.175.76.48 в 2013-08-27 19:51:00 +0000
2013-08-27T19: 51: 00.997866 + 00: 00 приложение [web.1]: начато GET"https://stackoverflow.com/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 приложения [web.1 ]: I, [2013-08-27T19: 51: 00.998379 # 2] INFO - omniauth: (google_oauth2) Началась фаза обратного вызова.
2013-08-27T19: 51: 02.188467 + 00: 00 приложение [web.1]: начато GET «/ users/sign_up» для 68.175.76.48 в 2013-08-27 19:51:02 +0000
2013 -08-27T19: 51: 02.188467 + 00: 00 приложение [web.1]: начато GET «/ users/sign_up» для 68.175.76.48 в 2013-08-27 19:51:02 +0000
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 = 9 мс = 52 мс = 304 байта = 0

Пожалуйста, дайте мне знать, какие у вас есть вопросы, и если я смогу прояснить что-либо вообще. Я очень ценю ваше время & help SO!

ответ

1

После пг: сброс, вы можете запустить команду создать, но это, как правило, дает вам выход, как:

slkdjfs0dslkd already exists 

Так тогда вы будете знать, что ваша база данных будет создана и готова к использованию. Прежде чем вы сможете посеять, убедитесь, что вы мигрируете. Просто стандартный Heroku путь

heroku run rake db:migrate 

Затем семена, как обычные

heroku run rake db:seed 
+0

Спасибо за ваш ответ! Я хочу отметить, что моей конкретной проблемой был WAY TRICKIER: в основном у меня был камень «protected_attributes», который Rails 4 рекомендует (для обработки массовых заданий линейки в ваших контроллерах из предыдущих версий Rails), и это, по-видимому, [заставляет процесс предварительной компиляции Heroku] (https://github.com/rails/protected_attributes/issues/13). Представьте, сколько времени мне понадобилось, чтобы понять это! – mecampbellsoup

+0

Ничего себе, я очень рад, что вы упомянули об этом. У меня есть приложение rails 3, которое вот-вот перейдет к обновлению до рельсов 4, с намерением использовать protected_attributes, и я бы ударил головой об этом! – trh

Смежные вопросы