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

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -