Hi,
I'm a newbie to ruby on rails. While I am writing a new application, I bumped into the following issue.
My model is as follows:
class UserRequest < ActiveRecord::Base # Name can't contain fewer than 4 chars / more than 8 chars. validates_length_of :name, :within => 4..8, :on => :create end
If I use scaffolding, the error message is displayed as expected when I tried to create a record with name fewer than 4 chars. However, if I write an action myself, the error messages are not displayed.
class UsersController < ApplicationController def new if request.post? user = UserRequest.create(:name => params[:name]) flash[:notice] = "User (Name: #{user.name}) was created successfully" end end end
Here's the view (new.rhtml) <%= error_messages_for :user_request %> <%= flash[:notice] %> <% form_tag do %> Please enter your name: <%= text_field_tag :name, nil %> <% end %>
The error_messages_for doesn't display any error messages at all. I'm sure the validation was happening as the record doesn't get added in the database if the input doesn't satisfy the condition. I've put my back into debugging this for 4 whole days and finally decided to trouble you guys. Please let me know if I'm doing something wrong here. Thanks in advance.