0

before_filter で変数を設定しようとしていますが、常に「AnswersController の未定義のローカル変数またはメソッド '質問'」というエラーが表示されます。

    class AnswersController < ApplicationController
        before_filter :get_question

        def create
            @answer = question.answers.new(params[:answer])
            @answer.user = current_user
            @answer.save
            flash[:notice] = 'Answer posted successfully.'
            redirect_to request.referer
        end

            def get_question
                question = Question.find(params[:question_id])
            end
    end

どうもありがとうございました!

4

1 に答える 1

6

@シンボルを使用してインスタンス変数にする必要があります。また、これはパブリック アクションではない可能性が高いため、これをプライベート メソッド (以下を参照) に移動することを検討することもできます。

class AnswersController < ApplicationController
    before_filter :get_question

    def create
        @answer = @question.answers.new(params[:answer])
        @answer.user = current_user
        @answer.save
        flash[:notice] = 'Answer posted successfully.'
        redirect_to request.referer
    end

    private

    def get_question
        @question = Question.find(params[:question_id])
    end
end
于 2013-10-03T14:50:29.277 に答える