Код указан здесь :
Он закодирован в среде "rails 2 + mongo_mapper", теперь я хочу преобразовать его в "rails 3 + mongoid".Не сообщается имя метода для "set_collection_name".
def klass
@klass ||= user_klass
end
def user_klass
klass ||= Class.new
klass.send(:include, Mongoid::Document)
// is it correct for mongoid
klass.set_collection_name(self._id.to_s)
klass.field "created_at", DateTime
klass.class_eval <<-METHOD
def id
self._id.to_s
end
def persisted?
!new_record?
end
METHOD
klass.instance_eval <<-NAME
def name
'Row'
end
NAME
self.questions.each do |question|
klass.field "q#{question.id}", String
klass.validates_presence_of "q#{question.id}".to_sym, :message => I18n.t('activemodel.errors.messages.blank') if question.required
klass.validates_uniqueness_of "q#{question.id}".to_sym, :message => I18n.t('activemodel.errors.messages.taken') if question.unique
if question.input == 'check' || question.input == 'radio'
klass.class_eval <<-METHOD
alias_method :old_q#{question.id}=, :q#{question.id}=
def q#{question.id}=(choices)
if !choices.is_a?(Array)
self.old_q#{question.id}= choices
return
end
if choices.include?('_other')
choices.delete('_other')
other_options = choices.detect {|c| c.is_a?(Hash)}
choices << other_options['other']
end
choices.reject! {|c| c.is_a?(Hash) || c.blank?}
self.old_q#{question.id}= choices.join("\n")
end
METHOD
end
end
klass
end
Подходят ли функции "send" и "set_collection_name" для рельсов 3 и mongoid среды.Внутренние классы.