除非明确要求,否则如何告诉Activerecord不加载blob列?我的旧数据库中有一些非常大的blob必须被排除在"普通"对象之外.
我刚刚使用导轨3遇到了这个问题.
幸运的是,解决起来并不困难.我设置了一个default_scope
从结果中删除了我不想要的特定列.例如,在模型中我有一个xml文本字段可能很长,在大多数视图中都没有使用.
default_scope select((column_names - ['data']).map { |column_name| "`#{table_name}`.`#{column_name}`"})
您将从解决方案中看到我必须将列映射到完全限定版本,因此我可以继续使用模型通过关系而不会在属性中出现歧义.之后,你确实希望让这个领域在另一个领域加入.select(:data)
以包含它.