ruby on rails - redirect_to :back, while still maintaining inputs on form field -
i rendering new answer
form questions
show template follow:
= render 'answers/form'
where answers/form
follow:
= form_for answer.new |f| .field = hidden_field(:answer, :question_id, value: params["id"]) .field %br/ = f.text_area :content, required: true, class: "form-control" .actions %div = button_tag type: "submit", class: "button-hollow-b" %i.fa.fa-stethoscope post
my question this:
if error occurs in saving answer, maybe due validation or anything, how make controller create
method redirect question show page, filled in answer still on form, , errors prevented saving well, using render
?
def create @answer = answer.new(answer_params) respond_to |format| if @answer.save format.html { redirect_to :back, notice: 'answer created.' } else format.html { render :new } format.json { render json: @answer.errors, status: :unprocessable_entity } end end end
render :new
renders new answer template, not on questions' show
page.
redirect_to :back
on other hand clears filled in answer, , not show errors on form.
thanks.
you're going render questions/show
. problem in how create answers. work, you'll need nested form.
follow guide rails casts: http://railscasts.com/episodes/196-nested-model-form-part-1?view=asciicast
if link doesn't align plan,then need actual object can reference. here you're using answer.new
, means every time form created new object created. you'll want use @answer = @question.answers.build
in controller , use @answer
instead of answer.new
way @answer.errors
work.
Comments
Post a Comment