有没有一种方法可以防止ActiveRecord加载一个Model的属性?

时间:2020-11-11 16:04:23

标签: ruby-on-rails rails-activerecord

我的Rails 6应用程序中有一个“多边形”模型。它具有“地理”作为其属性之一(地理参考区域的表示),它是Rails中的RGeo对象,而来自PostGIS的地理列。

我有一个“规则”模型,该模型通过“多对多”关系与“多边形”关联(模型“ Spatial_Domain”)。

无论何时创建或更新Rule对象,Rails都会在提交到我的Postgresql数据库之前加载其所有关联的Polygons。我发现将RGeo对象加载到我的多边形表的“地理”列中会花费很多时间,因为这些多边形既大又复杂。所以我尝试了这个解决方案 https://github.com/rgeo/activerecord-postgis-adapter/issues/187#issuecomment-286278821 ,虽然大大提高了响应时间,但我的应用仍需要70秒才能完成“创建”和“更新”任务。

因此,我在这里继续我的问题:有没有办法防止ActiveRecord加载'geography'属性? (在通过gem active-record-postgis迁移期间,我只需要ActiveRecord在相应的表中创建此属性)。

当前,我的应用程序不需要RGeo在Rails中对“地理位置”进行计算,因为必要的计算是在数据库中进行的。

0 个答案:

没有答案