Rails консоль против модуля - PullRequest
       6

Rails консоль против модуля

1 голос
/ 30 октября 2019

У меня есть массив хэшей (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...