を示していない。ActiveRecordの右の記録に私が書くのRails 3では、
@users = User.limit(10).sort_by(&:name)
私がしたいアルファベット順のように最初の10私の名前順に10人のユーザーを与えますが、されていません。私は間違って何をしていますか?
ありがとうございます!
を示していない。ActiveRecordの右の記録に私が書くのRails 3では、
@users = User.limit(10).sort_by(&:name)
私がしたいアルファベット順のように最初の10私の名前順に10人のユーザーを与えますが、されていません。私は間違って何をしていますか?
ありがとうございます!
試してみてください。
@users = User.limit(10).order('name ASC')
sort_by
方法が列挙からです。したがって、sort_by
を呼び出すには、ActiveRecordはデータベースからレコードを取得する必要があります。 ActiveRecordのは、最初にこれを行います。自分の名前を使用して
User.limit(10)
はデータベースから10件のレコードを取得するために、その後、それらのレコードは(Rubyで)ソートされます。最終的には、ソートされる前にレコードがデータベースから抽出されます。
解決策はAlex Peattieを聞き、order
メソッドを使用することです。
私はアレックスの答えを受け入れましたが、余分な説明に感謝します – user1021325
@ user1021325:それは素晴らしいです、あなたは彼の答えを受け入れるべきでした(それは私の上の投票BTWです)。私はちょうど期待どおりに動作していない理由を知っていることを確認したかったのです。 –