1

データベースから順序データを取得できないようです。プロフィールの閲覧回数に基づいて、ホームページにユーザーを一覧表示しようとしています。

私の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)

クライアント側の並べ替えは機能しますが、ユーザーにページを付けたいので、これはオプションではありません。アドバイスをいただければ幸いです。

4

2 に答える 2

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

http://guides.rubyonrails.org/active_record_querying.html#orderingを確認してください

ページネーションについては、このgemでいくつかのヘルプを得ることができます: https ://github.com/mislav/will_paginate

于 2012-09-05T21:01:02.840 に答える
0

アラウンドビューは、''クエリが失敗する原因です。引用符なしで試してください:

User.order("views DESC")

于 2012-09-05T21:03:06.423 に答える