inconsistent data in mySQL using string field

I have a migration:

class CreateCodeRequests < ActiveRecord::Migration   def self.up     create_table :code_requests do |t|       t.string :key_number       t.string :version       t.datetime :maint_end_date       t.string :nls_name       t.string :company_name       t.string :email_address       t.boolean :temp       t.integer :temp_week_to_start       t.integer :temp_num_weeks

      t.timestamps     end   end

  def self.down     drop_table :code_requests   end end

and two fixtures in a .yml file:

one:   id: 1   key_number: 0200699   version: 12.2   maint_end_date: 2009-05-31 12:00:0   nls_name: automod   company_name: U of Anywyere   email_address: Joe.Smith@uanywhere.edu   temp: false   temp_week_to_start:   temp_num_weeks:

two:   id: 2   key_number: 0200100   version: 12.2   maint_end_date: 2009-03-27 12:00:00   nls_name:   company_name: Company1   email_address: sue_jones@company1.com   temp: false   temp_week_to_start:   temp_num_weeks:

When I do the migration and load the fixtures I get data in the key_number field of 0200699 for the first one, but 65600 for the 2nd one, unless I put quotes around "0200100". What could be the reason for this?

TIA!

LG Rains

When I do the migration and load the fixtures I get data in the key_number field of 0200699 for the first one, but 65600 for the 2nd one, unless I put quotes around "0200100". What could be the reason
for this?

because yml assumes that it's a number in base 8. with the quotes it
sees that it's a string and doesn't do anything with it.

Fred

Frederick Cheung wrote:

When I do the migration and load the fixtures I get data in the key_number field of 0200699 for the first one, but 65600 for the 2nd one, unless I put quotes around "0200100". What could be the reason for this?

because yml assumes that it's a number in base 8. with the quotes it sees that it's a string and doesn't do anything with it.

Fred

Good answer, I knew that :slight_smile: Except, 0200699 has the leading 0 on it. Is it the fact that 0200699 has 9 in it - a non-base 8 digit?

I'd guess so.

Fred