Для функции администратора в приложении Rails я хочу иметь возможность хранить регулярные выражения в БД (в виде строк) и добавлять их с помощью стандартного действия контроллера.
Я столкнулся с 2 проблемами:
1) Фильтры параметров Rails, кажется, автоматически экранируют обратную косую черту (escape-символы), что портит регулярное выражение. Например:
\s{1,2}(foo)
становится:
\\s{1,2}(foo)
2) Тогда я попытался использовать write_attribute для gsub экземпляров двойных обратных косых черт с одиночными обратными косыми чертами (по сути, с их удалением). Это оказалось намного сложнее, чем ожидалось. (Я использую Ruby 1.9.2, если это имеет значение). Некоторые вещи, которые я нашел:
"hello\\world".gsub(/\\/, ' ') #=> "hello world"
"hello\\world".gsub(/\\/, "\\") #=> "hello\\world"
"hello\\world".gsub(/\\/, '\\') #=> "hello\\world"
Я пытаюсь сделать следующее:
"hello\\world".gsub(/\\/, something) #=> "hello\world"
Я бы хотел знать оба решения.
1) Как вы можете безопасно передавать и хранить регулярные выражения в качестве параметров для действия контроллера Rails?
2) Как заменить двойную обратную косую черту одной обратной?