草庐IT

rack-middleware

全部标签

ruby - Sinatra/Rack 因 url 中的非 ascii 字符而失败

我在/find/Wrocław收到Encoding::UndefinedConversionError"\xC5"从ASCII-8BIT到UTF-8出于某种神秘的原因,sinatra将字符串作为ASCII而不是UTF-8传递。我发现了一些丑陋的解决方法...我不知道为什么Rack假定编码是ASCII-8BIT...无论如何,一种方法是使用string.force_encoding("UTF-8")...但是对所有参数都这样做很乏味 最佳答案 我在路由到“/protégés/:id”时遇到了一些类似的问题。我posted到Rack邮件

ruby Rack : startup and teardown operations (Tokyo Cabinet connection)

我在Rack上的Sinatra中构建了一个非常简单的REST服务。它由3个TokyoCabinet/Table数据存储支持,这些数据存储具有需要打开和关闭的连接。我有两个直接用Ruby编写的模型类,它们目前只是连接、获取或放置它们需要的东西,然后断开连接。显然,这不会长期有效。我也有一些像Warden这样依赖于这些模型类的Rack中间件。管理打开和关闭连接的最佳方法是什么?据我所知,Rack不提供启动/关闭Hook。我考虑过在env中插入一个提供对TC/TT对象的引用的中间件,但是我必须通过Sinatra将其通过管道传输到模型,这似乎也不是很有效;并且那只会获得与TC的按请求连接。我认

ruby - 在任何来源中都找不到 rack-cache-1.0.3

我已经创建了一个非常基本的Rails3.1应用程序,部署到运行Ruby1.8.7(P334)的机器上(不幸的是,我不能轻易转到1.9.2。那里)。部署并运行“bundleinstall”后,我尝试运行控制台:bundleexecrailsconsole然后我得到:Couldnotfindrack-cache-1.0.3inanyofthesources并且控制台没有出现。似乎这个特定版本的rack-cache被ActionPack3.1.0列为依赖项。有人可以向我解释我需要做什么来解决这个问题,即让bundler将这个版本的rack-cache附加到项目中吗?我还读到bundler将项

ruby-on-rails - Heroku + Rack 重写

仍然无法正常工作...Heroku的CedarStack上的Rails3.1.3、Ruby1.9.2。尝试使用https://github.com/jtrupiano/rack-rewrite制作http://domain301重定向到http://www.domain运气不好(应用程序可以运行,但根本不会发生重定向)。/config/initializers/rack_rewrite.rb(MyAppName实际上是正确的名称,domain.com是实际域):MyAppName::Application.config.middleware.insert_before(Rack::Lo

ruby - 使用 Sinatra 和 Rack Logger 记录时如何过滤敏感信息

我维护一个充当JSONAPI服务的Sinatra应用程序。该API由另一个网络应用程序和移动应用程序使用。我想让Rack::CommonLogger从其日志中排除敏感信息,例如密码。Rails启用了此设置,但我没有找到如何在Sinatra中执行此操作的文档。 最佳答案 您可以像这样尝试拦截写入和过滤掉敏感消息的调用:logger=Logger.new("my_common.log")logger.instance_evaldodefwrite(msg)self.send(:然后,配置Rack::CommonLogger来使用这个记录

ruby - 在本地主机上使用 SSL 运行一个简单的 Rack 应用程序?

我有一个提供静态文件的简单Rack应用程序。我需要在本地使用SSL进行开发。有什么方法可以处理Rack? 最佳答案 我只是获取tunnelsgem,然后使用它启动SSL代理:sudotunnels4439292 关于ruby-在本地主机上使用SSL运行一个简单的Rack应用程序?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16512873/

ruby - 测试我的简单 Rack 应用程序的更简单方法?

我有一个像这样的Rack应用程序:app=Rack::Builder.newdomap'/'do#...endmap'/edit'do#...endend.to_app如果没有长尾安装/设置/学习过程,我将如何测试它。RSpec和minitest真的很棒,但我真的不想学习也不想设置它们。有什么我可以直接插入并立即用普通Ruby编写/运行测试的东西吗?我想编写像我上面编写的应用程序一样简单的测试,没有高级技术和陷阱。我相信KISS! 最佳答案 你可以试试Specular+Sonar捆绑。Specular用于在您需要的任何地方编写测试。

ruby-on-rails - [middleware] 的副本已从模块树中删除,但仍处于事件状态! - 错误

我们使用rails版本2.3.5此错误已在SOhere中报告我尝试了以下方法:添加config.cache_class=true-问题在于,每次对任何Controller进行更改时都必须重新启动服务器。服务器启动时间太长向中间件添加unloadable-没用将config.middleware.use[middleware]添加到development.rb-没用除了使开发类似于生产之外,还有其他方法可以克服这个问题吗?编辑甚至尝试将config.middleware.use[middleware]添加到environment.rb。那么这表现完全不同。我的错误消失了,但我的中间件破裂

ruby - 如何访问当前的 Rack::Session 实现

我正在开发一个gem,它不仅需要读取和写入当前session,还需要读取和写入其他“链接”session。现在,只要我需要更新当前session以外的session,我就会对我们在rails和rack应用程序中使用的底层session存储进行硬编码读写。但是,需要一种更通用的方法来使解决方案可移植到其他session实现。在Rails应用程序中,我可以查看Rails.application.config.session_store以确定session存储实现,并实例化一个新实例以读取和写入当前session以外的session。生成session存储的另一个实例似乎效率有点低,但它似乎

ruby-on-rails - Rails 3 + 乘客 : Rack error

我遇到了以下错误,它是几天前突然出现并使我的网站崩溃的。我在带有Passenger的Dreamhost机器上使用Ruby1.8.7、Rails3.0.0。参见thiscachedpage对于同一问题的另一种描述。Ruby(Rack)applicationcouldnotbestarted.Asourcefilethattheapplicationrequires,ismissing.Itispossiblethatyoudidn'tuploadyourapplicationfilescorrectly.Pleasecheckwhetherallyourapplicationfilesa