у меня есть регулярное выражение jruby, которое я печатаю в рельсах:
@@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 в Windows.
что дает?
изменить — добавить информацию
проблема оказалась в настройке среды. варблер по умолчанию использует «производство», а не dev. однако я до сих пор не понимаю, почему он так себя вел.
более подробно - именно так я реализую безопасность в своем приложении RoR. у меня есть метод secure?
для ApplicationController
, и я переопределяю значение @@private
в подклассах. похоже, что в рабочей среде регулярное выражение перестало инициализироваться в базовом классе. это было \\
для всех, что вызвало остальные мои проблемы.
идеи?
irb
, чтобы нам было легче увидеть, что происходит, и опубликовать фактические результаты, которые вы получаете от этого, в каждой системе. - person Brian Campbell   schedule 11.09.2010