私はこのようなフォームを持っています:
コンテンツなしでフォームを送信すると、エラーが表示されます:
ラジオボタンがなくなった!
これは私のフォームビューにあります:
<%= simple_form_for @question, defaults: { error: false } do |q| %>
<legend>Question</legend>
<%= render "shared/error_messages", object: q.object %>
<%= q.input :content, input_html: { rows: 3, class: 'span6' } %>
<%= q.input :mark, input_html: { class: 'span1' } %>
<%= q.association :topic %>
<%= q.association :question_type %>
<%= q.simple_fields_for :answers do |a| %>
<%= a.input :correct, collection: [[true, 'True'], [false, 'False']],
as: :radio_buttons,
label: 'Answer',
value_method: :first,
label_method: :last,
item_wrapper_class: 'inline'
%>
<% end %>
<% end %>
私が逃したか間違っているのは何ですか?render 'new'
@question.save が false の場合、質問コントローラーの作成アクションで使用しました。これは私の質問コントローラーです:
class QuestionsController < ApplicationController
def new
@question = Question.new
@question.answers.build
end
def create
@question = Question.new(content: params[:question][:content])
@question.mark = params[:question][:mark]
@question.topic_id = params[:question][:topic_id]
@question.question_type_id = params[:question][:question_type_id]
@question.user_id = current_user.id
if @question.save
if params[:question][:answers_attributes]['0'][:correct] == 'true'
answer = @question.answers.build(content: 'True')
answer.correct = true
else
answer = @question.answers.build(content: 'False')
end
if @question.save
flash[:success] = "Successfully created new question."
redirect_to root_url
else
render 'new'
end
else
render 'new'
end
end