2013-09-01 3 views
1

저는 레일을 처음 사용하고 조금 문제가 있습니다. 나는 받고있다부분에 정의되지 않은 로컬 변수

undefined local variable or method `answer' 

내 _answer.html.erb 부분에 오류가 있습니다. 그것이 중요한 내 자원 경우

<%=div_for(answer) do %> 
    <div class="questioncontainer"> 
    <p> 
    <%= answer.body %> 
    </p> 
    </div> 
    <% end %> 

:

class AnswersController < ApplicationController 
    before_action :set_answer, only: [:show, :edit, :update, :destroy] 


def index 
    @question = Question.find params[:question_id] 
    @question.answers 
end 


    def show 
    end 


def new 
    @question = Question.find params[:question_id] 
end 


def edit 
end 


    def create 
    @question = Question.find(params[:question_id]) 
    @answer = @question.answers.create(answer_params) 

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


    def update 
    respond_to do |format| 
     if @answer.update(answer_params) 
     format.html { redirect_to @answer, notice: 'Answer was successfully updated.' } 
    format.json { head :no_content } 
    else 
     format.html { render action: 'edit' } 
     format.json { render json: @answer.errors, status: :unprocessable_entity } 
    end 
    end 
end 


    def destroy 
    @answer.destroy 
    respond_to do |format| 
    format.html { redirect_to answers_url } 
    format.json { head :no_content } 
    end 
end 

내 _answer.html.erb 파일 :

여기 내 answers_controller.rb입니다 답변은 자원에 중첩되어 질문입니다.

감사합니다.

+0

/어떻게 대답을 렌더링합니까? –

+0

어떤 작업을 수행 할 때 오류가 발생합니까? 무엇이 : set_answer는? – Fred

+0

@DaveNewton <% = render "answers/answer"%>를 사용하여 내 _question.html.erb 파일에서 렌더링합니다. – user2736480

답변

0

answer 대신 div_for(@answer)을 사용해보세요. 컨트롤러와 뷰간에 통신 할 때는 항상 @variables을 사용합니다. 어쩌면 시간을내어 다음과 같이 읽어야합니다. http://guides.rubyonrails.org/layouts_and_rendering.html

+0

대단한데,이 질문은 answer_controller에서 def의 두 번째 줄을 만들 때 답을 입력 할 때를 제외하고는 정의되지 않은 "대답"오류가 발생합니다. – user2736480

+0

이것은 Answer를'question.answers.create (answer_params)'로 잘못 작성했기 때문에 발생합니다. 나는 당신이'Answer.create (params [: user_id], params [: answer_body])'또는 그것으로 뭔가를해야한다고 생각하지만 Answer 모델을 보지 않고는 실제로 알 수 없다. 그러나 솔직히 말해서 RoR에 대해 알아야 할 몇 가지 중요한 개념이 있습니다. RoR 응용 프로그램을 만들기 시작하기 전에 몇 권의 책이나 수업을 정말 파헤치는 것이 좋습니다. 'Rails for Zombies'(http://railsforzombies.org/)는 초보자를 위해 만들어 졌으므로 많은 도움이됩니다. –

+0

정말 고마워! 나는 분명히 좀비를위한 레일즈를 시도 할 것이다. – user2736480

관련 문제