首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用元搜索和元数据搜索计算字段

使用元搜索和元数据搜索计算字段
EN

Stack Overflow用户
提问于 2011-08-17 03:13:20
回答 1查看 677关注 0票数 5

有没有人能够找到一种方法来搜索一个计算出的字段,在rails 3中使用元搜索或元搜索?除计算字段外,我可以搜索任何字段。一定有办法的。对于那些不熟悉元搜索或元数据的人来说,这里是一个铁路站点。

http://railscasts.com/episodes/251-metawhere-metasearch

EN

回答 1

Stack Overflow用户

发布于 2011-10-12 10:35:47

Metawhere (现在的Squeel)扩展了ActiveRecord的Arel实现,Arel是一个SQL生成器。这意味着它将在SQL中转出一些语句,例如:

代码语言:javascript
复制
@user.order("birthday").to_sql #=> SELECT users.* FROM users ORDER BY birthday

当您执行User.find(:all).sort_by(&:age)时,您正在处理一个find(:all)、一个数组的结果,排序是在Ruby中完成的,这比较慢,并且与数据库无关。

所以不,你不能在

代码语言:javascript
复制
def age
  date.today - birthday
end

除非将结果存储在数据库中。

但是,,您可以在GROUP中使用诸如COUNT等SQL语句,并且必须在数据库上直接进行计算。

User.select("users.*, COUNT(user_id) AS vote_num").joins(:votes).group("user_id")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7087565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档