Tag:

如何读取机架请求中的POST数据

当我运行curl命令时 curl -v -H “Content-type: application/json” -X POST -d ‘{“name”:”abc”, “id”:”12″, “subject”:”my subject”}’ http://localhost:9292 要将包含数据的POST请求发送到我的Rack应用程序,我的代码打印出{} 。 这是来自下面的代码中的puts req.POST() 。 为什么打印出{}而不是POST数据? 如何在Rack应用程序中正确访问POST数据? require ‘json’ class Greeter def call(env) req = Rack::Request.new(env) if req.post? puts req.POST() end [200, {“Content-Type” => “application/json”}, [{x:”Hello World!”}.to_json]] end end run Greeter.new

您已经激活了机架1.3.2,但您的Gemfile需要机架1.2.3。 考虑使用bundle exec

我尝试运行我的应用时遇到了问题: You have already activated rack 1.3.2, but your Gemfile requires rack 1.2.3. Consider using bundle exec. 我读了很多关于这种错误,但我找不到任何适合我的解决方案 我已经删除了我的Gemfile.lock并按照此处的建议重新运行了bundle 我已经使用了最新版本的乘客(3.0.8) – 如此处所示 bundle exec rake技巧不能在我的情况下使用 谢谢你提前

将`params`和`session`和`env`添加到Object

在我写的一个gem中,我正在尝试将机架方法params , session和env到Object以便gem的用户可以访问和修改它们。 我尝试使用Object.instance_variable_set和Object.instance_variable_get将变量添加到Object ,然后通过从Object检索它们再次设置它们。 我一直在使用Rack::Request.new(env)接口来做到这一点。 唯一的问题是通过这个对象设置params和session似乎是不可能的。 这导致我相信我做的事情非常错误。 如何通过Rack::Request设置params和session ? 如果我正在做的不好或者有更好的方法,请告诉我。

如何使用Heroku上的Ruby Rack设置静态站点的URL

我的网站在这里 。 它曾经是一个Django支持的博客。 但是我不再更新它,所以我只是想让它成为一个静态HTML站点。 我想它并用Ruby Rack将它移动到Heroku。 但是,每个URL都会解析为主页。 这是因为我的config.ru文件: use Rack::Static, :urls => [“/media/images”, “/media/js”, “/media/css”], :root => “public” run lambda { |env| [ 200, { ‘Content-Type’ => ‘text/html’, ‘Cache-Control’ => ‘public, max-age=86400’ }, File.open(‘public/index.html’, File::RDONLY) ] } 问题:有没有办法映射多个URL? 例如foo.com/about映射到public/about/index.html , foo.com/posts/2012/oct/21/blog-post public/posts/2012/oct/21/blog-post/index.html映射到public/posts/2012/oct/21/blog-post/index.html 在这一点上,我甚至可以手动输入每一个。 谢谢你的帮助。

如何在Rack应用程序中设置/获取会话变量?

use Rack::Session::Pool … session[:msg]=”Hello Rack” 编辑:单词会话似乎没有解决。 我在我的config.ru中包含了Session pool中间件,并尝试在ERB文件中设置一个变量(我正在使用Ruby Serve)并且它抱怨“未定义的局部变量或方法`session’” 谢谢!