NULL datetime field inserted when value is assigned to model object

This is pretty baffling. I have the following model object:

create_table “activities”, :force => true do |t|
t.integer “user_id”, :limit => 11
t.datetime “created_at”
t.datetime “updated_at”
t.integer “location_id”, :limit => 11
t.datetime "
end

model/activity.rb:

class Activity < ActiveRecord::Base

belongs_to :User
belongs_to :Location

attr_accessor :event_date
attr_accessor :user
attr_accessor :location

end

my activities_controller.rb:

activity = Activity.new(params[:activity])

activity.event_date = Date.today

activity.user_id = current_user.id

activity.save

It throws an error b/c it’s trying to insert NULL for event_date in
the MYSQL database:
ActiveRecord::StatementInvalid (Mysql::Error: Column ‘event_date’
cannot be null: INSERT INTO activities (update\ d_at, location_id, user_id, event_date, created_at)
VALUES(‘2008-07-30 05:16:00’, 1, 1, NULL, ‘2008-07-30
05:16:00’)):

I have no idea why. If I explicitly print out
‘activity.event_date.to_s’ is gives me the date of today.

If I remove the stipulation the “event_date” can be NULL it just
insert a NULL value.

thanks in advance for help

in a controller I create an "Activiti

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs