я уже получил JRuby регулярное выражение, которое я печатаю в рельсах:jruby regex разное на окнах от os x?
@@private = /somethingthatshouldnevermatch/
def secure?
puts "security test(#{action_name}/#{@@private}: #{@@private.match(action_name).nil?.to_s}"
action_name =~ @@private
end
на OS X, используя WEBrick и JRuby, это печатает
security test(index/(?-mix:somethingthatshouldnevermatch):
на окнах, это печатает
security test(index/?-mix:):
Я использовал warbler, чтобы превратить это в войну и бросить в каталог tomcat на окнах.
Что дает?
редактировать - Moar Информация
вопрос оказался установочным среды. warbler по умолчанию «production», а не dev. однако я до сих пор не понимаю, почему так оно и было.
Подробнее об этом - это то, как я реализую безопасность в своем приложении RoR. У меня есть метод secure?
на ApplicationController
и переопределяет значение @@private
в подклассах. он выглядит так, как только среда, установленная для производства, регулярное выражение перестает инициализироваться в базовом классе. это было \\
для всех, что вызвало остальную часть моих проблем.
идеи?
Ваш код выглядит так, как будто он делает что-то отличное от результата вывода, который вы даете. Было бы лучше, если бы вы сузили свою проблему до простого примера, который можно было бы запустить в 'irb', поэтому мы можем более легко увидеть, что происходит, и опубликовать фактический вывод, который вы получаете от того, что есть в каждой системе. –
'twas a typo. Я обновил код с тех пор. – kolosy