У меня есть массив хэшей (data
)
sort_column = "Me.You.Them"
Мне нужно отсортировать массив по sort_column
. Когда я делаю data.sort_by { |h| h.dig(sort_column.split('.').map(&:to_s))}
в консоли rails, возвращаемые данные сортируются, но когда я помещаю точно такой же метод в мой вспомогательный модуль, он возвращает nil.
Кто-нибудь знает почему?
Вот мои методы:
Мой вспомогательный файл:
module DatatablesHelper
def fetch_data(data, sort_column, sort_direction)
if sort_column.present?
if sort_direction == "desc"
sorted_leads = data.sort_by { |h| h.dig(sort_column.split('.').map(&:to_s))}
else
sorted_leads = data.sort_by { |h| -h.dig(sort_column.split('.').map(&:to_s))}
end
else
sorted_results = data
end
return sorted_results
end
end
Мой контроллер и действие
class DataController < ApplicationController
include DatatablesHelper
def get_data
data = [
{},
{}
] # Here imagine we have a large array of hashes returned from an api
sort_column = params['order']["0"] # => "Me.You.Them"
final = fetch_data(data, sort_column, "desc")
render json: {
recordsTotal: data.count,
recordsFiltered: final.count,
data: final
}
end
end