Ich habe eine 'landing.html.erb' unter einem Ordner 'Willkommen' in meinen Ansichten. Im WelcomeController habe ich folgendes:Objekt ist alles Nils in Rails 4+?
def landing
@quiz = Quiz.new
end
, um ein neues Quiz zu erstellen. Wenn der Benutzer auf die Schaltfläche zum Erstellen klickt, ist der Code, den ich für den QuizzesController habe,
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
. Allerdings gibt dieser den Fehler:
undefined method `build' for nil:NilClass
speziell auf der Linie
@quiz = current_user.quiz.build(quiz_params)
ich die Schienen Konsole lief und tippte Quiz.new und es jedes Feld als ‚Null‘ angezeigt, und ich bin nicht ganz sicher, was ich ändern muss und würde Beratung schätzen.
Das Quiz-Modell gehört zu Benutzer. Der Benutzer hat ein Quiz.
Vielen Dank.
müssen Sie current_user.build_quiz (quiz_params) verwenden, wenn has_one eine Verknüpfung hat. – power
Wenn es Ihnen nichts ausmacht, werde ich die detaillierte Antwort geben. – power
@power Kein Problem! – helpisgood