что соответствует пустому регулярному выражению в ruby? - PullRequest
3 голосов
/ 26 августа 2010

после учебника по безопасности RoR (здесь) , я написал что-то вроде

@@private_re = //
def secure?
  action_name =~ @@private_re
end

Идея в том, что в базовом случае это не должно совпадать, и возвращает nil. Проблема в том, что это не так. В настоящее время я работал с бессмысленной строкой, но я хотел бы знать ответ.

Ответы [ 2 ]

5 голосов
/ 26 августа 2010

Пустое регулярное выражение успешно соответствует каждой строке.

Примеры регулярных выражений, которые всегда будут не соответствовать:

  • /(?=a)b/
  • /\Zx\A/
  • /[^\s\S]/
1 голос
/ 26 августа 2010

Предполагается, что никоим образом не изменяет поведение контроллера, так как // будет соответствовать каждой строке.

Идея состоит в том, что @@private должно быть установлено в контроллере для соответствиявещи, которые вы действительно хотите быть частными.Таким образом, этот код предназначен для того, чтобы ничего не делать, но в сочетании с @@private = /.../ в контроллере дает вам хороший механизм конфиденциальности.

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