>

오류 메시지 받기

User must exist

내가 새 게시물을 작성하려고 할 때.

먼저 friendly_id gem을 설치 한 다음 devise gem을 설치하고 devise 사용자 모델을 만들었습니다. 그 후 나는 devise views를 생성했습니다. 거기서 제목 설명 본문과 슬러그가있는 Post 용 스캐 폴드를 만들었습니다

나는 belongs_to :user 를 만들었다  포스트 모델과 has_many :posts 에서  사용자 모델에서. 그런 다음 이것을 생성하는 마이그레이션을 생성했습니다.

class AddUserReferenceToPosts < ActiveRecord::Migration[5.1]
  def change
    add_reference :posts, :user, foreign_key: true
    add_foreign_key :posts, :users
  end
end

포스트 모델로 이동하여 다음으로 변경할 수 있음을 알고 있습니다

belongs_to :user, optional: true

오류 메시지를 통과했지만 터미널에 들어가서 사용자를 만들었습니다

u = User.create(email: "[email protected]", password: "password")

성공적으로 로그인했지만 여전히 오류 메시지가 나타납니다. 내가 잘못하고있는 일에 도움이 필요합니다.

  • 답변 # 1

    부모가 없으면 자식을 만들 수 없도록 사용자와 게시물 사이에 어설 션이 필요합니다! 먼저 사용자를 작성해야합니다. 그러면 콘솔에서이를 사용하여 포스트를 작성할 수 있습니다. User.create! (name : "name", "다른 필드") 그런 다음 irb와 같은 포스트를 작성하십시오. Post.create! (text : " 일부 콘텐츠 ", user_id : 1) 이렇게하면 사용자 참고 사항에 대한 게시물이 생성됩니다. 생성 한 사용자의 ID가 1 인 것으로 가정하고 내 휴대 전화에서이 게시물을 유감스럽게 생각하며 게시합니다

  • 답변 # 2

    게시자 컨트롤러를 변경해야합니다 ,이 코드를 새로 작성하여 작성하십시오.

    def new
      @post = current_user.posts.build
    end
    def create
      @post = current_user.posts.build(post_params)
      ...
    end
    
    

관련 자료

  • 이전 안드로이드 sqlite에서 커서를 닫는 것의 중요성은 무엇입니까?
  • 다음 애플 서비스는 apns로 3개의 키 서비스를 생성할 수 없습니다