【发布时间】:2016-11-18 09:45:53
【问题描述】:
我的视图中的“欢迎”文件夹下有一个“landing.html.erb”。在 WelcomeController 中,我有以下内容:
def landing
@quiz = Quiz.new
end
创建一个新的测验。当用户点击创建按钮时,
def create
@quiz = current_user.quiz.build(quiz_params)
if @quiz.save
flash[:success] = "Updated"
redirect_to @quiz
else
render 'new'
end
end
def quiz_params
params.require(:quiz).permit(:q1)
end
是我为 QuizzesController 提供的代码。但是,这给出了错误:
undefined method `build' for nil:NilClass
特别是在行
@quiz = current_user.quiz.build(quiz_params)
我运行 rails 控制台并输入 Quiz.new,它会将每个字段都显示为“nil”,我不完全确定需要修改什么,希望得到指导。
测验模型属于_to用户。 用户 has_one 测验。
非常感谢。
【问题讨论】:
-
如果有 has_one 关联,您需要使用 current_user.build_quiz(quiz_params)。
-
如果你不介意的话,我会放上详细的答案。
-
@power 没问题!
标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller models