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
-~----------~----~----~----~------~----~------~--~---