Phone number not coming through: noob

Hi:

used scaffold to create a phone number table. But when phone number saves it's not coming through as the number entered in the text field:

RESULT FROM DB WHEN I ENTER PHONE NUMBER OF 215 555 1212 INTO WEB FORM:

REPLACE INTO "phones" ("id", "number", "phone_type_id", "employee_id", "created_at", "updated_at") VALUES   (13,2147483647,1,'8','2008-10-25 11:05:48','2008-10-25 11:05:48');

Seems like I'm doing something wrong that the phone number entered insn't coming through as the number. the "2147483647" value is the same value that is entered in the DB all the time.

What am I doing wrong? Thanks so much in advance!

All code below:

VIEW:

<% form_for(@phone) do |f| %> <table width="600" border="0">     <tr>         <td class="label">Number:         </td>         <td><%= f.text_field :number %> (required - no spaces or dashes)         </td>     </tr>     <tr>         <td class="label">Phone type:         </td>         <td><%= f.collection_select(:phone_type_id, PhoneType.find(:all), :id, :name) %> (required)         </td>     </tr>     <tr>         <td class="label">Number:         </td>         <td><%= text_field_tag :number2 %> (required - no spaces or dashes)         </td>     </tr>

<%= hidden_field_tag :employee_id, @phone.employee_id %>     <tr >         <td class="button form-right" align="right">           <%= link_to "Cancel", "/dashboard.html" %>         </td>         <td class="button form-left"><%= f.submit "Finish >>" %>         </td>     </tr> </table> <% end %>

CONTROLLER:

def new     @phone = Phone.new     if params[:id].nil?     else       @emp = Employees.find(params[:id])       @phone.employee_id = params[:id]     end

    respond_to do |format|       format.html # new.html.erb       format.xml { render :xml => @phone }     end   end

  def create     @phone = Phone.new(params[:phone])     @phone.employee_id = params[:employee_id]

    respond_to do |format|       if @phone.save         flash[:notice] = 'Phone was successfully created.'         format.html { redirect_to(@phone) }         format.xml { render :xml => @phone, :status => :created, :location => @phone }       else         format.html { render :action => "new" }         format.xml { render :xml => @phone.errors, :status => :unprocessable_entity }       end     end   end

MODEL:

class Phone < ActiveRecord::Base   has_many :phone_types   belongs_to :employees

  validates_presence_of :number   validates_length_of :number, :maximum => 10   validates_numericality_of :number,                             :message => "Phone number can be only numbers." end

DB MIGRATION:

class CreatePhones < ActiveRecord::Migration   def self.up     create_table :phones do |t|       t.integer :number       t.integer :phone_type_id       t.integer :employee_id

      t.timestamps     end   end

  def self.down     drop_table :phones   end end

Hi:

used scaffold to create a phone number table. But when phone number saves it's not coming through as the number entered in the text field:

RESULT FROM DB WHEN I ENTER PHONE NUMBER OF 215 555 1212 INTO WEB FORM:

You've created phone numbers as integer columns. by default the
database is probably using 32 bits integers which 2155551212 will overflow and the database stores the maximum possible
value for such a column instead. You could change the column to a larger integer type, but if i were
you i would change it to a string column and phone numbers are numbers
in the usual sense (eg the leading 0 in a phone number is significant,
but an integer column won't store that)

Fred