そういえば、こんなコードを書いたのでした。 (最終的にはなくなりましたが)
allowed_keys = %w(foo bar hoge.fuga) if allowed_keys.include?(params[:key]) key = [params[:key].split(/\./)].flatten @array.sort_by{ |a| key.inject(a){ |e, m| e.send(m) } } end