2014-04-27 1 views
1

게시자와 게시자를 devise에 등록 된 사용자에게 연결하는 데 어려움이 있습니다.게시자를 게시자 사용자와 연결할 수 없습니다.

게시판을 생성하여 Devise에서 올바르게 설정했습니다. 나는 USER_ID 필드

을 포함 된 게시물로 마이그레이션을 추가 내가 포스트와 사용자를 연결할 수없는 모델 has_many :posts 어떤 이유로 포스트 모델 belongs_to :user

사용자입니다. 내가 놓친 게 있니?

감사합니다. 게시물

에 대한

내 컨트롤러

def create 

@user = User.find(params[:id]) 
@post = @user.posts.create(params[:post]) 


respond_to do |format| 
    if @post.save 
    format.html { redirect_to @post, notice: 'Post was successfully created.' } 
    format.json { render action: 'show', status: :created, location: @post } 
    else 
    format.html { render action: 'new' } 
    format.json { render json: @post.errors, status: :unprocessable_entity } 
    end 
end 

당신이 게시물에 연결하는 사용자가 필요로하는 모든의
+2

게시물이 생성 된 컨트롤러의 관련 방법을 게시하십시오. – Baldrick

+0

포스트 컨트롤러 – user3546559

+0

으로 업데이트하여 생성 된 이전 코드를 친절하게 게시하십시오. – Babar

답변

2

첫째 : 당신이 할 수있는만큼 당신이 has_many 연관을 가지고

@user = User.find(params[:id]) # or just use current_user as you are using Devise 

을 다음 :

@post = @user.posts.build(params[:post]) # to return newly created object without saving it to the database 
@post = @user.posts.create(params[:post]) # to create and save record to the database 

그게 전부입니다.

+0

유익한 답장을 보내 주셔서 감사합니다. 게시물 컨트롤러에 대한 내 작업을 만듭니다 (stackoverflow 날 붙여 넣기 코드를 보자하지 않습니다, 업데이트를 참조하십시오) – user3546559

+0

@ user3546559 로그에 하루는 무엇입니까? create with create!를 (를) 대체하십시오! 로그의 출력을 붙여 넣습니다. – Babar

+0

SQLite3 :: SQLException : 해당 열 없음 : posts.user_id : SELECT "posts". * FROM "posts"WHERE "posts". "user_id"=? 거래 시작 [1m [36m (0.0ms) [0m [1m 롤백 거래 [0m [1m [35m (0.0ms) [0m 트랜잭션 시작 [1m [36m (0.0ms)) [0m [1m 롤백 트랜잭션 [0m – user3546559

관련 문제