2014-08-28 1 views
-3

양식을 통해 테스트 포스트를 제출하려고하는데 param이 없거나 값이 비어 있습니다.이 오류가 발생합니다. 나는 "내용"을 요구하고 "제목"을 허용하고 있습니다. 두 필드는 내 애플 리케이션에 게시물이나 "생각"을 제출했을 때 작성되었습니다. 문제는 강력한 매개 변수와 관련이 있다고 생각합니다. 인터넷 어디에서나 그 답을 찾을 수 없습니다. 여기 내 컨트롤러가있다.테스트 포스트를 제출 한 후에이 오류 메시지가 나타납니다. param이 누락되었거나 값이 비어 있습니다 : content?

class ThoughtsController < ApplicationController 
    def index 

    end 

    def new 
    @thought = Thought.new(params[:id]) 
    end 

    def create 
    @thought = Thought.new(params[post_params]) 

    @thought.save 

    if @thought.save 
     redirect_to @thought 
    else 
     render :new 
    end 
    end 


    private 
    def post_params 
    params.require(:content).permit(:title) 
    end 

end 

감사합니다.

+0

먼저 레일을 읽어야합니다. 컨트롤러에 문제가 너무 많습니다. 새 메서드는 매개 변수를 사용하지 않고 id 매개 변수로 새 객체를 만듭니다. 강력한 매개 변수도 올바른 방법으로 정의되지 않았습니다. 'post_params'는 create 메소드에서'params [post_params]'와 같은 방법으로 사용할 수 없습니다. –

+0

제출 된 매개 변수는 무엇입니까? (로그 파일에서 찾을 수 있습니다.) –

+0

그냥 콘텐츠와 제목입니다. – tomcruise

답변

0

다음이 작동합니다. 당신은 적절하게 strong_parameters을 조금 잘못 이해합니다. 생각 객체에 :content:title 속성이 있으면 허용 괄호 안에 나열해야합니다. 이는 대량 할당을 허용한다는 것을 의미합니다.

def create 
    @thought = Thought.new(post_params) 

    if @thought.save 
     redirect_to @post 
    else 
     render :new 
    end 
    end 


    private 
    def post_params 
     params.require(:thought).permit(:content, :title) 
    end 
+0

@post는 오타 였고, @ 생각 했어야했습니다.해야 할 일이 있습니까? 저의 의도는 다음과 같습니다. – tomcruise

+0

수정 된 답변입니다. 예, 제공 한 링크를 살펴보세요. 유용 할 것으로 확신합니다. –