【发布时间】:2013-01-18 02:29:20
【问题描述】:
我需要将 ActiveRecord 模型类自动转换为 MongoDB 文档类。我可以使用 rails 生成器来执行此操作,该生成器将读取模型的属性并生成新的 document.rb。
如果 ActiveRecord 模型类如下所示:
class Project < ActiveRecord::Base
attr_accessible :completed, :end_date, :name, :start_date
end
那么,一个生成的类与 Mongoid 的结构确认如下:
class ProjectDocument
field :name, type: String
field :start_date, type: Date
field :end_date, type: Date
field :completed, type: Boolean
field :created_at, type: Time
field :updated_at, type: Time
end
但我不想存储不同的文档文件,每个模型一个。每当启动 rails 应用程序时,我都希望能够即时生成此文档类。
这可能吗?是否建议使用这种从内存中生成和使用类的方法?我对 AR 模型结构的更改没有限制;该文档是灵活的 w.r.t 数据结构,更改的列将自动添加。
【问题讨论】:
-
使用 :end 作为访问器或字段名是个坏主意
-
糟糕,点了。这只是示例代码;不在任何地方使用它。调整了问题。
标签: ruby-on-rails ruby ruby-on-rails-3 mongoid metaprogramming