Ruby on rails Rails 4+;中的对象均为零;?
我在视图中的“欢迎”文件夹下有一个“landing.html.erb”。在WelcomeController中,我有以下内容:Ruby on rails Rails 4+;中的对象均为零;?,ruby-on-rails,ruby,ruby-on-rails-4,model-view-controller,models,Ruby On Rails,Ruby,Ruby On Rails 4,Model View Controller,Models,我在视图中的“欢迎”文件夹下有一个“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 ren
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
是我为测验控制器准备的代码。但是,这会产生以下错误:
undefined method `build' for nil:NilClass
特别是在生产线上
@quiz = current_user.quiz.build(quiz_params)
我运行rails控制台并键入quick.new,它将每个字段显示为“nil”,我不完全确定需要修改什么,希望得到指导
测验模型属于用户。
用户有一个测验
非常感谢。这里我假设用户和测验之间有一个关联。 因此,对于构建关联对象,您需要使用以下代码
current_user.build_quiz(quiz_params)
这将使用用户id字段生成测验对象,该字段包含当前用户的id以及根据测验参数生成的其他字段。您需要使用当前用户。如果有关联,则生成测验(测验参数)。如果您不介意,我将给出详细答案。@power没问题!