Forum: Ruby on Rails Retain Form Values on reset

Posted by Ashwin Vel (Guest)
on 2010-03-09 20:02
(Received via mailing list)
I have a Login page created with 4 fields and a submit button  for an
application i am developing.

Username :
Email address :
Password :
Confirm Password :

i am validating each field. so if the username is missing , when u hit
submit button , there is a notice / warning that flashes on top
So if i just enter Username and hit Submit, it should flash a message
saying that "Email ID is missing " at the same time retaining the
value in the Username field.
But that isnt happening. It just resets the form with the notice
message  on top.

How do i make this happen.
Also i am not using Databases. So i have activeRecord Disabled. i am
using an set of external  API's to login / register to this
application


Any help would be  Greatly appreciated.
Posted by David Cuddeback (Guest)
on 2010-03-09 21:02
(Received via mailing list)
Ashwin,

I had to do something similar in my app.  What you can do is create an
object that mimics ActiveRecord in your controller.  By that, I mean
the object should have methods with the same names as the attributes
which return the attribute's value.  Then pass that to a form helper,
and you should be golden.

Controller action:
   @user = User.new(params[:user])   # User is a class you'll have to 
write

View template:
<% form_for :user, @user, :url => {:action => 'create'} do |f| %>
  <%= f.text_field :username %>
   ....
  <%= f.submit %>
<% end %>

The trick is that `f.text_field :username` will create a text field
and set its value to what is returned by calling `@user.username`.
You can read up more on form helpers here:
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

I hope that helps,

~David
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.