我试图将数据从postsmark_term模型获取到视图,但出现错误。
短语术语模型:
QuizExecution.vue
phrases_terms_controller.rb
Phrases_term(id, term_id, phrase_id)
Phrases_term展示视图show.html.erb:
class PhrasesTermsController < ApplicationController
before_action :authenticate_user!
before_action :set_term
def new
@phrases_term = PhrasesTerm.new
end
def create
@phrases_term = @term.phrases_terms.new(phrases_term_params)
if @phrases_term.save
redirect_to term_phrases_term_path(@term, @phrases_term), notice: "Phrases_Term was successfully created"
else
render "new"
end
end
private
def phrases_term_params
params.require(:phrases_term).permit(:term_id, :phrase_id)
end
def set_term
@term = Term.find(params[:term_id])
end
end
我得到的错误:
错误:nil:NilClass的未定义方法'id'
答案 0 :(得分:0)
您收到MyIterator
错误,因为您的undefined method 'id' for nil:NilClass
视图不知道show.html.erb
是什么。因此,在尚不存在的变量上调用@phrases_term
方法会引发错误。您需要在正确的动作下的正确控制器中定义要使用的变量。因此添加:
id
您def show
@phrases_term = PhrasesTerm.find(params[:id])
end
中的应该可以解决该错误。