How to give default value to fields in a model while creating model_name.new()


#1

am a newbie to rails , I created a model named Employee

and in migration i added the following

class CreateEmployee < ActiveRecord::Migration
def self.up
create_table :employees do |t|

  t.string :name, :limit => 40, :null => false,:default => ""
  t.text :address, :limit => 200,:default => ""
  t.text :location_name, :default => "",:limit => 200
  t.text :city, :default => "",:limit => 200
  t.text :state, :default => "",:limit => 200
  t.integer :zipcode, :limit => 6

  t.timestamps
end

end

def self.down
drop_table :employees
end
end

i gave default to almost all the fields esp which are string or text

but when i took the console and created a new instance of the class
say Employee.new i find the default argument is not working

Employee.new
=> #<Employee id: nil, name: “”, address: nil, location_name: nil,
city: nil, state: nil, zipcode: nil, created_at: nil, updated_at: nil>

only the name is given a default value of “”
rest is still nill


#2

On Thu, 5 Mar 2009 05:38:24 -0800 (PST)
“— Z@m —” removed_email_address@domain.invalid wrote:

  t.text :address, :limit => 200,:default => ""
  t.text :location_name, :default => "",:limit => 200
  t.text :city, :default => "",:limit => 200
  t.text :state, :default => "",:limit => 200
  t.integer :zipcode, :limit => 6

Are you using mysql? If so, it doesn’t support default values for “text”
columns.

SH

Starr H.
My blog: http://starrhorne.com
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/


#3

yea am using mysql

sad ! !