Как я могу написать соответствующее регулярное выражение для этого? - PullRequest
1 голос
/ 15 декабря 2011

Я ищу ключевое слово "admin" в этом массиве:

params[:controller] = ["admin","organizations"]

Поэтому я написал это:

params[:controller].split(/\//).each{|a|a.match(/admin/)}

Но это удивительно возвращает:

["admin", "organizations"]

Какой правильный синтаксис мне здесь не хватает?

Ответы [ 3 ]

4 голосов
/ 15 декабря 2011

Почему бы не использовать

params[:controller].include? "admin"
1 голос
/ 15 декабря 2011

each возвращает исходный массив.

Это больше похоже на вы хотите any?, который возвращает true, если какой-либо элемент коллекции получает истинное значение, возвращаемое из блока.

(Вы всегда можете просто join тоже.)

0 голосов
/ 15 декабря 2011

Ваше заявление о совпадении на самом деле ничего не делает, так как оно не производит вывода. Если бы у вас было puts a.match(/admin/), он бы выписал "admin" один раз.

Фактическое возвращаемое значение каждого - это массив, поэтому вы видите, как возвращается исходный массив.

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