Thank you everyone for the previous validation help. I have one last
question… Can anyone tell me if there is a standard way to deal with a
failed
validation and loss of the data that was partially completed on the
form. I currently use a redirect back to the same action and lose all
the data (obviously). Do I send valid data back and forth in the
params hash?
if @question.errors.any?
redirect_to(:controller => “questions”, :action => “new”,
:minisection_id => session[:minisection_id], :question_type =>
“standard”)
There has to be a standard way to do this I assume…
render the view - @question will be given to the view for rendering the
previous values
render :new if @question.errors.any?
further this url will help with any other questions
When I “render :new”, the view gets called correctly but there is a
partial in the new.html.erb view which does not render.
<%= form_for @question, :as=> :question, :url => { :action => “create”}
do |f| %>
<% if @question_type == “standard” %>
<%= render ‘new_and_edit_fields’, f: f %>
Can I not render a render??
Jodi S. wrote in post #1099859:
further this url will help with any other questions
Layouts and Rendering in Rails — Ruby on Rails Guides
Thank you.
Dave, consider this refactor
create an instance method in your question model
def standard?
question_type == “standard”
end
then your view/controller syntax get a bit more readable
@question.standard?
Never mind… got it!
@question_type == “standard”
On 2 March 2013 17:23, Dave C. [email protected] wrote:
Thank you everyone for the previous validation help. I have one last
question… Can anyone tell me if there is a standard way to deal with a
failed
validation and loss of the data that was partially completed on the
form. I currently use a redirect back to the same action and lose all
the data (obviously). Do I send valid data back and forth in the
params hash?
My standard response for beginners who have not yet got the basics of
rails is to work right through a good tutorial such as
railstutorial.org, which is free to use online. That should cover
your question and many others that you have yet to ask.
Colin