ActiveRecord的和蒙戈/蒙戈映射器桥
-
20-09-2019 - |
题
我有我已经使用的Active Record和我想补充使用MongoDB的一些新功能的项目。而不是重新发明轮子和重新写我的整个网站,如何可以集成2个模型一起,其中一个使用MongoMapper和其他的ActiveRecord(postgres的)。
我发现,别人已经成功地做到了,但没有例子:
例如,我有欲涉及位置的现有的ActiveRecord模型...即城市场所的STI蒙戈模型(一个或多个)。基于Authlogic用户模型......我怎么能使用他们的音乐会?我会在正确的方向上或两个指针感谢。
谢谢,
解决方案
此精美制作
的地方模型
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
其他提示
您也可以使用类型转换。
而不是仅仅存储在MongoDB中的LOCATION_ID,可以实现类的方法,from_mongo
和to_mongo
,在Location类,允许mongomapper连载每个位置例如在蒙戈安全和友好的方式。
简单(ISTC)示例:
<强>地方模型强>
key :location, Location, :required => true
位置模型强>
def self.to_mongo(location)
location[:id]
end
def self.from_mongo(location_id)
find(location_id)
end
此,当然,是完全相同的例子如前面的答案。这里的很酷的事情是,如果需要的话可以序列完整的字符串,用更多的数据,从而更容易查询和蒙戈检索数据。
例如,LOCATION_ID和坐标,让你可以模仿一个地理数据库和地图/减少同纬度的地方。 (笨例如,我知道)
不隶属于 StackOverflow