为什么我不能从数据库中提取有序数据?

时间:2012-09-05 20:54:43

标签: ruby-on-rails ruby sqlite

我似乎无法从数据库中提取有序数据。我正在尝试根据他们的个人资料有多少观看次数在我的主页上列出用户。

我的users架构如下所示:

# == Schema Information
#
#
# Table name: users
#
#  id              :integer          not null, primary key
#  email           :string(255)
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#  username        :string(255)
#  password_digest :string(255)
#  views           :integer
#

我的控制器:

class PagesController < ApplicationController
  def home
    @users = User.order("'views' DESC")
  end
end

问题在于.order什么都不做。 @users仍按id排序{}},就好像我已完成User.all一样。我尝试在Rails控制台中运行User.order("'views' DESC"),但我得到的内容与User.all相同。

我检查了development.log,查询似乎已正确执行:

[1m[35mUser Load (0.2ms)[0m  SELECT "users".* FROM "users" ORDER BY 'views' DESC
Rendered pages/home.html.erb within layouts/application (1.1ms)
Rendered layouts/_header.html.erb (0.5ms)
Rendered layouts/_footer.html.erb (0.0ms)

进行客户端分类工作,但是我想对用户进行分页,因此这不是一个选项。任何建议将不胜感激!

2 个答案:

答案 0 :(得分:1)

@users = User.order("views DESC")

检查http://guides.rubyonrails.org/active_record_querying.html#ordering

对于分页,你可以获得这个宝石的一些帮助: https://github.com/mislav/will_paginate

答案 1 :(得分:0)

''周围的视图是导致查询失败的原因。尝试不带引号:

User.order("views DESC")

相关问题