Rails에서 수행 한 프로젝트를 다른 폴더로 복사했습니다. Devise gem을 사용하여 새 사용자를 만들거나 등록하려면 내 컴퓨터에서 로컬로 작동합니다.완료 됨 500 Heroku의 Devise 사용자 가입시 내부 서버 오류가 발생했습니다.
2017-10-18T09:13:44.841868+00:00 app[web.1]: D, [2017-10-18T09:13:44.841788 #4] DEBUG -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c] (1.2ms) ROLLBACK
2017-10-18T09:13:44.844378+00:00 app[web.1]: I, [2017-10-18T09:13:44.844294 #4] INFO -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c] Completed 500 Internal Server Error in 1109ms (ActiveRecord: 122.8ms)
2017-10-18T09:13:44.845813+00:00 app[web.1]: F, [2017-10-18T09:13:44.845733 #4] FATAL -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c]
2017-10-18T09:13:44.845955+00:00 app[web.1]: F, [2017-10-18T09:13:44.845867 #4] FATAL -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c] NoMethodError (undefined method `id' for nil:NilClass):
2017-10-18T09:13:44.846016+00:00 app[web.1]: F, [2017-10-18T09:13:44.845935 #4] FATAL -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c]
2017-10-18T09:13:44.846141+00:00 app[web.1]: F, [2017-10-18T09:13:44.846063 #4] FATAL -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c] app/models/user.rb:150:in `set_pinned_posts'
2017-10-18T09:13:44.846302+00:00 app[web.1]: F, [2017-10-18T09:13:44.846146 #4] FATAL -- : [8944a6a0-36d4-4f3a-b4e2-967d5273ae3c] app/controllers/users/registrations_controller.rb:3:in `create'
: 나는에게 Heroku에이 같은 수행 할 때 그러나 Heroku가 로그 나에게 이러한 오류 (: 사용자에 대한 NilClass) 500 내부 서버 오류 및 무기 호에 대한 NoMethodError (정의되지 않은 메서드 'ID')을 제공 사용자 테이블이 있지만 Heroku에서 사용자를 만들 수는 없습니다.
- 는 Heroku가 서버
heroku restart -a appname
- 나는 또한 종이 클립 보석에 대한 아마존 AWS S3를 사용하고 있는데 다시 시작
heroku run rails db:migrate
- 으로 데이터베이스를 마이그레이션 : 내가 지금까지했던 어떤
이 프로젝트에서는 두 개의 다른 프로젝트에도 사용하는 동일한 키를 사용합니다. 다른 두 프로젝트는 잘 작동합니다. (예 : AWS Access Key, AWS Region, AWS Secret Access Key, Secret Key Base). 그것이 문제일까요?
- 내 gemfile에있는 pg gem의 버전 번호를 삭제하고 번들을 다시 설치했습니다.
- Stackoverflow에 관한 비슷한 질문은 등록 후 이메일 확인에 문제가 있음을 보여줍니다. 그러나 Devise에 대한 전자 메일 확인을 활성화하지 않았습니다.
오류 메시지에서 사용자 모델 방법 :
class User < ApplicationRecord
after_create :set_pinned_posts
...
def set_pinned_posts
Fpost.where(pinned: true).all.each do |post|
self.randomized_fposts.where(fpost_id: post.id).each do |post|
post.set_faketime_for_pinnedposts
end
end
first = Fpost.where(pinned: true).first
last = Fpost.where(pinned: true).last
self.randomized_fposts.where(fpost_id: first.id).update_all(fake_time: 1.days.ago)
self.randomized_fposts.where(fpost_id: last.id).update_all(fake_time: 30.days.ago)
end
end
'app/models/user.rb : 150 : in set_pinned_posts' 여기서 오류가 발생합니다. 우리가 도울 수 있도록 모델 코드를 게시할까요? – lacostenycoder
고마워, 나는 (이 방법에서는 고정 된 "가짜 게시물"을 설정하고 게시 시간을 변경하는) 방법을 추가했습니다. – OhDaeSu