DateTime con MongoDB / Mongoid y Rails 3 no se llena

Aquí está el código en mi modelo

include Mongoid::Document include Mongoid::Timestamps field :message, :type => String field :send_at, :type => DateTime 

Aquí está el código para mi formulario parcial

  

Pero la fecha y la hora nunca se rellena. Me aseguré de que Mongo y Mongoid también estén al día. No estoy seguro de si hay algo que me falta.

[ACTUALIZAR ENTRADAS DE REGISTRO]

 Started POST "/notifis" for 127.0.0.1 at Mon Oct 18 05:48:05 -0400 2010 Processing by NotifisController#create as HTML Parameters: {"commit"=>"Create Notifi", "authenticity_token"=>"/hrlnvA2Xn5NqGgCkPFAQV254IHPJEvZoLxOYNNUwhc=", "_snowman"=>"☃", "notifi"=>{"send_at(2i)"=>"10", "is_sent"=>"0", "send_at(3i)"=>"18", "send_at(4i)"=>"09", "message"=>"erwer", "send_at(5i)"=>"48", "send_at(1i)"=>"2010"}} MONGODB noti_development['notifis'].insert([{"send_at(2i)"=>"10", "created_at"=>Mon Oct 18 09:48:05 UTC 2010, "is_sent"=>false, "updated_at"=>Mon Oct 18 09:48:05 UTC 2010, "_id"=>BSON::ObjectID('4cbc17d5c24d7602bc00002d'), "send_at(3i)"=>"18", "message"=>"Sample Message", "send_at(4i)"=>"09", "send_at(1i)"=>"2010", "send_at(5i)"=>"48"}]) Redirected to http://localhost:3000/notifis Completed 302 Found in 4ms Started GET "/notifis" for 127.0.0.1 at Mon Oct 18 05:48:05 -0400 2010 Processing by NotifisController#index as HTML MONGODB noti_development['users'].find({:_id=>BSON::ObjectID('4cb9db18c24d7602bc000007')}, {}).limit(-1) MONGODB noti_development['notifis'].find({}, {}) Rendered notifis/index.html.erb within layouts/application (42.0ms) Completed 200 OK in 52ms (Views: 51.2ms) 

Mongoid no maneja atributos multiparamétricos como Fecha todavía, por lo que necesita hacer lo siguiente:

 # copied from: https://gist.github.com/315227 # add this to a new file in your lib directory module MultiParameterAttributes def filter_time(attributes, name) attrs = attributes.collect do |key, value| if key =~ /^#{Regexp.escape(name.to_s)}\((\d+)(\w)\)$/ [$1.to_i, value.send("to_#$2")] end end.compact.sort_by(&:first).map(&:last) Time.zone.local(*attrs) unless attrs.empty? end end # include the module above in your application_controller.rb class ApplicationController < ActionController::Base include MultiParameterAttributes end # and in the controller action where you process the form params, use filter_time class YourController < ApplicationController def your_action time = filter_time(params, :my_time_attribute_name) end end 

Más información aquí: http://groups.google.com/group/mongoid/browse_thread/thread/f83cbdd641581912

Las versiones recientes de Mongoid manejan atributos de parámetros múltiples, solo tiene que incluir el módulo en su modelo:

 include Mongoid::MultiParameterAttributes 

Docs: http://mongoid.org/en/mongoid/docs/rails.html