There have been several postings about how to extract a :date out of the params hash, none of which seem to make use of Rails own functionality. When a model includes a :date field, the params list coming back from a date_select view has multiple parts, each tagged with something like "(1i)". Rails calls these multi-parameter attributes. When you pass the params list directly to a model''s new method, Rails parses the date just fine: my_model = MyModel.new(params[:my_model]) However, if you want to just snag an embedded date (say, "entered_on"), it seemed like you were out of luck unless you did an end-around and created your own Date object. Perusing the source for ActiveRecord::Base, the initialize() method (called by MyObject.new and its kin) includes this line: self.attributes = attributes unless attributes.nil? This line invokes ActiveRecord::Base::attributes=, which includes code to handle multi-parameter attributes. Basically, it looks for the "(" in the parameter name, causing it to invoke assign_multiparameter_attributes, which does all the magic. So the question is, how do we arrange for the multi-parameter attribute for a date to be assigned to our model object? Here''s what I came up with; I''d welcome a cleaner alternative. my_model.attributes = params[:my_model].reject { |k,v| k !~ / ^entered_on/ } This arranges to create a (new) hash containing just the muti- parameter attribute "entered_on" (including "entered_on(1i)", "entered_on(2i)", etc.), and pass the hash to the attributes= method, which handles the date attribute. tom. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---