如何用Rails 4对单行中的值求和?

Tal*_*boy 0 mysql activerecord ruby-on-rails ruby-on-rails-4

我有一个模型,Book与有关书(信息title,author,publisher等等),并且它也有views,downloads,shares.

但是,我想要做的是按照"受欢迎程度"对书籍进行排序,根据我的意思,这是views + downloads + shares针对该特定行,然后我可选择显示与记录相关联的"受欢迎度得分".

谢谢!

tih*_*hom 5

试试这个:

records = Book.select("books.*, views + downloads + shares AS popularity").order("popularity DESC")
# => access popularity as record.popularity
Run Code Online (Sandbox Code Playgroud)

  • 如果表`books`很大并且您经常需要这些数据,那么最好有另一列.其他选项(我更喜欢)是使用缓存,因为我会这样做,无论如何加快我的观点. (2认同)