Form fields cleared out because of validation

Hi there

Implementing my first “update” procedure worked fine.
I took this as a template for a “create” procedure, but that does not
work as expected: when I enter invalid data, the validation stops me
from saving the data, that’s working, but all fields are cleared!

Furthermore, also the data is not saved, no error message is dislayed.

Advice is more then welcome!

Controller Code:

def create_client
case request.method
when :get
@client =
when :post
client =[:client])
if true
flash[:notice] = “Client successfully added”
redirect_to({:controller => ‘client’, :action => ‘overview’},
flash[:errobj] = ‘client’

Layout Code

<% if flash[:errobj] -%>
<%= error_messages_for flash[:errobj] -%>
<% end %>

Okay, I am an idiot. But there is still hope because I found out

Instead of

  client =[:client])

I should have said

  @client =[:client])

Layout Code

<% if flash[:errobj] -%>
<%= error_messages_for flash[:errobj] -%>
<% end %>

If things aren’t working the way you expected, debug your code, write
tests, etc.

<%= debug flash[:errobj] %>
<%= flash.inspect %>

Or, get a little acquainted with ruby-debug and just throw a <%
debugger -%> in there.

Flash messages survive a request, like a redirect, but are not
available in the current request. Since you just render the same
template on invalid models, use[:errobj], or @errobj.

Rick O.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs