error message in rails

I am using validations for first name, but I am getting error message
two times for the label and text_field,

<div class="field">
    <%= f.label :first_name %>&nbsp;
    <%= f.text_field :first_name %>
  </div>

Show us the validation you have specified and what the error is and
why you think the error is wrong. Otherwise what hope have we got of
helping?

Colin

In my model i had used the validation

validates :first_name, :format => {:with => /^[a-zA-Z.\s]*$/
i}, :length => {:minimum => 1, :maximum => 25}, :presence => true

in views
<div class="field">
    <%= f.label :first_name %>&nbsp;
    <%= f.text_field :first_name %>
  </div>

in the browser i am getting error messages 2 times like this

First name is too short (minimum is 1 characters),can't be blank
is too short (minimum is 1 characters),can't be blank

In my model i had used the validation

validates :first_name, :format => {:with => /^[a-zA-Z.\s]*$/
i}, :length => {:minimum => 1, :maximum => 25}, :presence => true

in views
<div class="field">
<%= f.label :first_name %>&nbsp;
<%= f.text_field :first_name %>
</div>

in the browser i am getting error messages 2 times like this

First name is too short (minimum is 1 characters),can't be blank
is too short (minimum is 1 characters),can't be blank

That suggests that the name is blank by the time it gets to be saved
in the database.
First have a look in the log (log/development.log) and check that the
name is passed in correctly. Then have a look at the Rails Guide on
debugging. It will show you how to use ruby-debug to break into your
code and inspect data so that you can see what is wrong.

By the way please do not top post, it makes it difficult to follow the
thread. Insert your reply at appropriate points in the previous
message. Thanks.

Colin

Your format regex will pass an empty string (""), or a string of nothing
but space characters, so that's pointless. Alternatively, if you check
for at least one valid word character, then the name must be present
and must be at least 1 character long. (I'm not sure why you have
either the \s or . in there.)

If you've specified a minimum length of 1, then the :presence check
is also pointless, isn't it?

You could condense this whole thing into one regular expression,
which would likely give you only one error message :slight_smile:

e.g. /\A\s*[a-zA-Z]{1,25}\s*\Z/

Aside: You might also want to reconsider your requirements -- for
example "D'Arcy" is a legitimate first name :slight_smile:

HTH,