Я учусь использовать Backbone js с Rails и Mongo. Вот мои модели:
class Task
include MongoMapper::Document
include ActionView::Helpers
many :time_entries
key :description, String
key :duration, Integer, :default => 0
timestamps!
end
и
class TimeEntry
include MongoMapper::EmbeddedDocument
belongs_to :task
key :startDate, Date
key :endDate, Date
end
По какой-то причине время, которое я отправляю как startDate и endDate, уменьшилось при обновлении mongo, но я вижу, что магистраль правильно их проталкивает:
Started PUT "/tasks/4f357ece8af1b04a54000ef2" for 127.0.0.1 at 2012-02-11 12:25:19 -0500
Processing by TasksController#update as JSON
Parameters: {"description"=>"Task with time entry", "time_entries"=>[{"startDate"=>"2012-02-11T17:25:19.529Z"}], "created_at"=>"2012-02-10T20:32:14Z", "duration"=>0, "id"=>"4f357ece8af1b04a54000ef2", "updated_at"=>"2012-02-11T17:25:00Z", "task"=>{"description"=>"Task with time entry", "time_entries"=>[{"startDate"=>"2012-02-11T17:25:19.529Z"}], "created_at"=>"2012-02-10T20:32:14Z", "duration"=>0, "id"=>"4f357ece8af1b04a54000ef2", "updated_at"=>"2012-02-11T17:25:00Z", "action"=>"update", "controller"=>"tasks"}}
MONGODB timetrack_development['tasks'].find({:_id=>BSON::ObjectId('4f357ece8af1b04a54000ef2')}).limit(-1)
MONGODB timetrack_development['tasks'].update({:_id=>BSON::ObjectId('4f357ece8af1b04a54000ef2')}, {"_id"=>BSON::ObjectId('4f357ece8af1b04a54000ef2'), "description"=>"Task with time entry", "duration"=>0, "created_at"=>2012-02-10 20:32:14 UTC, "updated_at"=>2012-02-11 17:25:19 UTC, "time_entries"=>[{"_id"=>BSON::ObjectId('4f36a47f8af1b04a54000ff9'), "task_id"=>nil, "startDate"=>2012-02-11 00:00:00 UTC}]})
Обратите внимание, что rails правильно получает мои параметры startDate и endDate как строки в формате ISO8601, но при вызове update задается время 00:00:00. Что я делаю не так?