On 25 Oct 2008, at 16:19, Miked wrote:
>
> 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>
>
> 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
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---