Rails: кроме элементов массива из слайса - PullRequest
0 голосов
/ 26 октября 2018

У меня есть запись студентов как

{"id"=>"14", "first_name"=>"Donald", "last_name"=>"Trophy", "age"=>"13", "gender"=>"male", "cast"=>"black", "fee_status"=>"paid", "deleted_at"=>nil}

Для отправки данных в DataTable я беру несколько столбцов

patient.slice('age', 'gender', 'cast', 'fee_status').values

У меня есть другой массив из некоторого потока, hidden_columns, который может иметь следующее значение:

["age"]

["age", "gender"]

["31", "33", "age"]

["31", "gender", "33", "age"]

Я хочу except значения, которые у меня есть в hidden_columns

Я пытаюсь это:

patient.slice('age', 'gender', 'cast', 'fee_status').except(hidden_columns).values

, который не работает для меня.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Прежде всего вы должны использовать оператор splat (*).Тогда вместо одновременного использования .slice() и .except() вы можете сделать это более эффективным способом.

columns_to_show = ['age', 'gender', 'cast', 'fee_status']
columns_to_show = columns_to_show - hidden_columns if hidden_columns

patient.slice(*columns_to_show).values
0 голосов
/ 26 октября 2018

Вам придется использовать оператор splat внутри except, так как он принимает несколько ключей в качестве аргументов, а не массив ключей,

patient.slice('age', 'gender', 'cast', 'fee_status').except(*hidden_columns)
 => {"cast"=>"black", "fee_status"=>"paid"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...