加载的Blob列停止的ActiveRecord [英] Stop Activerecord from loading Blob column

查看:156
本文介绍了加载的Blob列停止的ActiveRecord的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么能告诉ActiveRecord的不加载BLOB列,除非明确要求?还有一些pretty的大水滴在我的旧的数据库,必须排除正常的对象。

How can I tell Activerecord to not load blob columns unless explicitly asked for? There are some pretty large blobs in my legacy DB that must be excluded for 'normal' Objects.

推荐答案

我只是碰到了这个使用轨道3。

I just ran into this using rail 3.

幸运的是它并不难解决。我设置了 default_scope 的删除特定的列我没有从结果想。例如,在模型我有可能是相当长的,这不是在大多数视图使用一个XML文本字段

Fortunately it wasn't that difficult to solve. I set a default_scope that removed the particular columns I didn't want from the result. For example, in the model I had there was an xml text field that could be quite long that wasn't used in most views.

default_scope select((column_names - ['data']).map { |column_name| "`#{table_name}`.`#{column_name}`"})

您会看到,我已映射列完全合格的版本,这样我就可以继续使用通过关系模型,而不会在属性含糊不清的解决方案。后来在那里你想有外地刚钉在另一个。选择(:数据)。将它列入

You'll see from the solution that I had to map the columns to fully qualified versions so I could continue to use the model through relationships without ambiguities in attributes. Later where you do want to have the field just tack on another .select(:data) to have it included.

这篇关于加载的Blob列停止的ActiveRecord的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆