【发布时间】:2010-09-13 12:45:22
【问题描述】:
我有一个要在 rails 中打印的 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):
在windows上,这会打印出来
security test(index/?-mix:):
我用warbler把它包装成一个war,然后放到windows上的tomcat目录中。
什么给了?
编辑 - 摩尔信息
问题原来是环境设置。莺默认为“生产”,而不是开发。但是,我仍然不明白为什么它会这样。
更多细节 - 这是我在我的 RoR 应用程序中实现安全性的方式。我在ApplicationController 上有一个secure? 方法,并在子类中覆盖@@private 的值。看起来环境设置为生产,正则表达式停止在基类中初始化。每个人都是\\,这导致了我剩下的问题。
想法?
【问题讨论】:
-
您的代码看起来与您提供的示例输出有所不同。最好将问题缩小到一个可以在
irb中运行的简单示例,这样我们就可以更轻松地查看发生了什么,并将您从中获得的实际输出发布到每个系统上。 -
这是一个错字。从那以后我已经更新了代码。
标签: ruby-on-rails regex jruby tomcat6 warbler