1

我是 Rails 新手,遇到了一些麻烦。我得到一个

undefined local variable or method `answer'

我的 _answer.html.erb 部分错误。

这是我的answers_controller.rb:

  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 文件:

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

如果重要,我的资源:答案嵌套在资源:问题中。

我很感激任何帮助!

4

1 回答 1

0

尝试使用div_for(@answer)而不是answer. 当您在控制器和视图之间进行通信时,您总是使用@variables. 也许您应该花一些时间阅读以下内容:http: //guides.rubyonrails.org/layouts_and_rendering.html

于 2013-09-01T02:15:33.363 回答