それぞれの選択肢質問に対する回答が記録され、適切なユーザーにトレースされるクイズモジュールを作成しようとしています。編集と新しいビューはどちらも同じフォームを使用するので、私は部分的なものを使用しています。Form_forの引数エラー(フォームの最初の引数にはnilを含めることも空でもない)
私は「フォームの最初の引数がnil含まれているか、空にすることはできません」と言って引数のエラーを取得しています新しいビューを表示しよう
コントローラは次のとおりです。
class QuizBsController < ApplicationController
before_action :require_sign_in
def show
@quiz_bs = QuizBs.find(params[:id])
end
def new
@quiz_bs = QuizBs.new
end
def create
@quiz_bs = QuizBs.new
@quiz_bs.bs01 = params[:quiz_bs][:bs01]
@quiz_bs.bs02 = params[:quiz_bs][:bs02]
@quiz_bs.bs03 = params[:quiz_bs][:bs03]
@quiz_bs.bs04 = params[:quiz_bs][:bs04]
@quiz_bs.bs05 = params[:quiz_bs][:bs05]
@quiz_bs.bs06 = params[:quiz_bs][:bs06]
@quiz_bs.user = current_user
if quiz_bs.save
flash[:notice] = "Quiz results saved successfully."
redirect_to user_path(current_user)
else
flash[:alert] = "Sorry, your quiz results failed to save."
redirect_to welcome_index_path
end
end
def update
@quiz_bs = QuizBs.find(params[:quiz_bs])
@quiz_bs.assign_attributes(quiz_bs_params)
if @quiz_bs.save
flash[:notice] = "Post was updated successfully."
redirect_to user_path(current_user)
else
flash.now[:alert] = "There was an error saving the post. Please try again."
redirect_to welcome_index_path
end
end
private
def quiz_bs_params
params.require(:quiz_bs).permit(:bs01, :bs02, :bs03, :bs04, :bs05, :bs06)
end
end
新しいビューは次のとおりです。
<div class="container">
<div id="quiz_bs_new" class="text-center">
<h1>Body Structure Quiz</h1>
</div>
<%= render partial: "quiz", locals: { quiz: @quiz_bs } %>
</div>
<div class="buffer-50"></div>
そして、ここでは私のフォームは部分的だ:
<%= form_for @quiz do |f| %>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<%= f.label "Question Text" %><br>
<div class="radio left-padding-30">
<%= f.radio_button :bs01, '1'%><label>31 Seconds or More</label><br>
<%= f.radio_button :bs01, '2'%><label>26 - 30 Seconds</label><br>
<%= f.radio_button :bs01, '3'%><label>21 - 25 Seconds</label><br>
<%= f.radio_button :bs01, '4'%><label>16 - 20 Seconds</label><br>
<%= f.radio_button :bs01, '5'%><label>10 - 15 Seconds</label><br>
<%= f.radio_button :bs01, '6'%><label>6 - 9 Seconds</label><br>
<%= f.radio_button :bs01, '7'%><label>0 - 5 Seconds</label>
</div>
</div>
</div> <!-- column end -->
</div> <!-- row end -->
<div class="buffer-25"></div>
<div class="row">
<div class="col-xs-12 center-block">
<div class="center-block"><%= f.submit %></div>
</div> <!-- column end -->
</div> <!-- row end -->
<% end %>
ist 'update'または' new'ですか?あなたの 'rake routes'も投稿してください。 – 7urkm3n