[Rails] Adding validation to ToDo List tutorial

Boon Hoo Thee theebh at gmail.com
Fri Jan 7 10:06:35 GMT 2005


Hi, I tried out the ToDo List tutorial, and curious to explore further
to learn more abt Rails.

a) I added the following validation rules in the Todo model:
class Todo < ActiveRecord::Base
  validates_presence_of :description

b) In my Todo controller, I modified the 'add_item' action:
def list
  @not_done = Todo.find_not_done
  @done = Todo.find_done
end

def add_item
  @item = Todo.new    
  @item.attributes = @params["new_item"]  
  if @item.save  
    redirect_to(:action => "list")  
  else
    render_action "list" # <-- modified
  end
end

c) In my view, I added the following:
   <% unless @item == nil or @item.errors.empty? %>
        The item couldn't be saved due to these errors:
  <ul>
  <% @item.errors.each_full do |message| %>
    <li><%= message %></li>
  <% end %>
  </ul>
  <% end %>

Now by adding an empty description, the validation rule takes effect
and display the error message "Description can't be empty". However,
the @not_done and @done objects now become 'nil' in my view. Why is
this so? I assume the 'list' method will be called when render_action
is invoked.

Any tips or advice is much appreciated!:)


More information about the Rails mailing list