рельсы соответствуют окончанию строки в параметрах - PullRequest
0 голосов
/ 09 мая 2018

Я получаю параметры с такими ключами, как:

params["guest1_member1"]
params["guest2_member1"]
params["guest3_member2"]
params["guest4_member2"]

Есть ли какой-нибудь способ регулярного выражения для получения параметров, содержащих _member1?

Что-то вроде:

params["*_member1"]

1 Ответ

0 голосов
/ 09 мая 2018

Это должно сделать это для вас, без регулярного выражения:

params.select { |key, _value| key.ends_with?('_member') }

Это довольно очевидно, выбирая все элементы из хэша params, заканчивающиеся на '_member'.

Вы также можете использовать деструктив:

params.keep_if { |key, _value| key.ends_with?('_member') }`

Хотя обратите внимание, что удалит все несоответствия из параметров.

Обратите внимание, это соответствует строкам, которые заканчиваются вашим шаблоном, хотя вы можете переключиться на key.include?(...), если шаблон может появиться где-нибудь в клавише.

Я посмотрел и не верю, что вы можете передать регулярное выражение в Hash::[], но буду рад, если меня поправят.

Вы всегда можете использовать регулярные выражения в одном из вышеприведенных блоков, хотя я считаю, что приведенные параметры более читабельны.

Надеюсь, это поможет независимо - дайте мне знать, как вы ладите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...