したがって、user.dj_name 属性を持つユーザーが多数います。これはモデルの検証済みの必要性ですが、問題が発生しているため、ここではまだ慎重です。
多数のユーザーを取得し、dj_name で並べ替えたいと考えています。このようなもの:
@djs = Event.all.map { |e| e.program.user }.sort_by {|x,y| x.dj_name <=> y.dj_name }
イベント(ショー)を持っているすべてのDJを引っ張っています。「NoMethodError: undefined method `dj_name' for nil:NilClass」で失敗します
だから私は試しました:
@djs = Event.all.map { |e| e.program.user }
@djs.compact.sort_by! {|x,y| x.dj_name <=> y.dj_name rescue nil}
そして、それはソートされません。「rescue nil」句がないと、同じエラーが発生します。
そして、私が拒否した場合!オブジェクトが nil の場合、何も取得しません。
> @djs.reject! {|d| d.nil? }
=> nil
配列内のオブジェクトはどれも nil ではないようです。並べ替えメカニズムでエラーが発生し、それを救うと並べ替えプロセスが停止し、変更されていない配列が返されます。
半分?