我有一个项目,我使用Active Record,我想使用MongoDB添加一些新功能。我不是重新发明轮子并重新编写我的整个网站,而是如何将2个模型集成在一起,一个使用MongoMapper,另一个使用ActiveRecord(postgres)。
我发现其他人已成功完成,但没有例子:
例如,我有一个STI Mongo模型的地方,我想与现有的ActiveRecord地点模型相关联......即城市。和基于Authlogic的用户模型......如何在演唱会中使用它们?我会感激一两个指针在正确的方向。
谢谢,
答案 0 :(得分:2)
这很好用
key :location_id, Integer, :required => true
def location
Location.find(location_id)
end
def self.find_places(id)
Property.find_by_location_id(id)
end
def find_places
Property.find_by_location_id(id)
end
答案 1 :(得分:1)
您也可以使用类型转换。
您可以在Location类中实现类方法from_mongo
和to_mongo
,而不是仅仅将location_id存储在mongodb中,以允许mongomapper序列化mongo安全中的每个Location实例 - 和 - 友好的态度。
简单(istc)示例:
放置模型
key :location, Location, :required => true
位置模型
def self.to_mongo(location)
location[:id]
end
def self.from_mongo(location_id)
find(location_id)
end
当然,这与前一个答案中的示例完全相同。这里很酷的是你可以序列化一个完整的字符串,如果需要的话可以有更多的数据,从而更容易从mongo查询和检索数据。
例如,location_id和坐标,因此您可以模拟地理位置并映射/缩小同一纬度的地点。 (愚蠢的例子,我知道)