def set_form_elements!(form_elements) @form_elements = form_elements @form_elements.each do |fe| methods = <<-EOS def #{fe.field_name} attributes[:#{fe.field_name}] end def #{fe.field_name}=(new_val) attributes[:#{fe.field_name}] = new_val end EOS instance_eval methods, __FILE__, __LINE__ # set a defaul if we have one attributes[fe.field_name.to_sym] = fe.default unless fe.default.nil? end end