Techioz Blog

@users.person.nameを名前で並べ替えるにはどうすればよいですか? (Ruby on Rails)

概要

@usersを名前のアルファベット順に並べ替えようとしています。どうすればいいでしょうか?

@users.person.name

編集: これを私が解決した方法は次のとおりです。 @users.sort! { |a、b| a.人物名 <=> b.人物名 }

ありがとう、num8er

解決策

ソリューションに関する観察を 1 つ。 #sort を使えば! #sort の代わりに、十分な理由が必要になります。 #sort! が必要な場合を除き、#sort を使用することをお勧めします。

次のコードを考えてみましょう。


    1  test = %w(c a b)
    2  p test.sort  # => ['a', 'b', 'c']
    3  p test       # => ["c", "a", "b"]
    4  p test.sort! # => ['a', 'b', 'c']
    5  p test       # => ['a', 'b', 'c']

5 行目で 3 行目とは異なる値が表示される理由がわからない場合は、#sort の使用を避けることをお勧めします。そうするまでは完全に。そうしないと、非常に見つけにくいバグが発生する可能性があります。