Tag: sinatra

真正的sinatra(ruby / rack)after_filter的最快方法是什么?

好的,这是一项简单的任务。 在我将html渲染到客户端后,我想用请求中的信息执行db调用。 我正在使用sinatra,因为它是一个轻量级的微框架,但是如果它更快/更容易(Rack?),我真的想用ruby做任何东西。 我只想获取url并根据url将客户端重定向到其他位置。 那么如何使用rack / sinatra进行真正的after_filter。 而after_filter我的意思是在响应发送给客户端之后。 或者,如果没有线程,这是不可行的? 我分叉sinatra并在filter之后添加,但是没有办法刷新响应,即使是send_data,假设流文件(显然是二进制文件)等待after_filters。 我已经看到了这个问题: 多部分响应在ruby中,但答案是针对rails。 我不确定它是否真的刷新了对客户端的响应,然后允许后续处理。 Rack :: Callbacks有一些回调之前和之后,但即便看起来它们会在响应被发送到客户端之前运行这里的Rack :: Callbacks实现(添加注释): def call(env) @before.each {|c| c.call(env) } response = @app.call(env) @after.each {|c| c.call(env) } response #i am guessing when this method returns then the response is sent to the client. end 所以我知道我可以用rake通过shell调用后台任务。 但是没有太多也是好的…还有NeverBlock但是对于执行一个单独的进程而不延迟响应是好的还是它仍然会使应用程序等待整体(我认为它会)? 我知道这很多,但简而言之,简单的after_filter在ruby / sinatra / rack中发送响应之后真正运行。 […]

确保链接在不在域根目录时到达正确位置的最佳方式/做法?

我一直想知道这一段时间了,但是在创建链接时(通过方法生成或者通过写入来确保在Web应用程序(RoR,Sinatra,PHP,任何内容)中的最佳方法是什么)无论你是否在某个域的根目录,他们都会到达正确的位置: http : //www.example.com/或http://www.example.com/this/is/where/the/应用程序/是/ 我的想法是让最终用户在你的应用程序的配置中的某个地方指定一个文档根,然后使用它,但是我想要一个很好的方法来做到这一点,而最终用户不必配置任何东西。 编辑:最终用户,我指的是在服务器上设置应用程序的人。 编辑:我可以使用开头’/’来获取相对于域的链接,但问题是,如果应用程序本身不在根,但有些地方,如http://www.example.com/this /是/ where / / app /是/所以我想说gen_link(‘/’)并让它返回/this/is/where/the/app/is/或gen_link(‘/some/thing’)和return /this/is/where/the/app/is/some/thing

从sinatra应用程序发送post请求到rails应用程序

我需要从一个sinatra应用程序发送一个POST请求到一个rails应用程序,它将返回一些json。 我在本地测试这个function。 url如下: Rails app : railsapp.mydomain.com/api/v1.json Sinatra app: sinatraapp.mydomain.com 在localhost上,url是: Rails app: localhost:3000/api/v1.json Sinatra app:localhost 3001 在我本地运行的sinatra应用程序中,我有以下代码在本地发出POST请求 $(“#submit”).click(function(){ $.post(“http://localhost:3000/api/v1.json”, {email:””,password:””}, function(data) { //Do something with response } ); }); 此外,请求标头中的Content-Type应为”application/x-www-form-urlencoded” 。 我在Firefox中使用REST Client来测试请求并且它可以正常工作,但在上面的代码中根本没有提出请求。 我的代码中有什么错误? 谢谢

如何正确地将嵌入式ruby代码放入JavaScript中?

我试图在JavaScript中嵌入Ruby代码的输出: var stuff= “”; 嵌入式部分正在单独工作,显示如下结果: { “name”:”John Johnson”, “street”:”Oslo West 555″, “age”:33, “phone”:”555 1234567″} 以上这一行是精确的页面来源; 它虽然在本地运行,所以我无法向您显示该页面。 在变量中,我尝试将其发送到我的应用程序: document.getElementById(“X_Axis”).value=stuff.name; 通过输入: 我每次都得到一个undefined值。 我尝试在JavaScript中对代码进行硬编码,并且它工作得很好,当嵌入式Ruby放入JavaScript变量时,它总是给我undefined值。

像PHP一样热部署Ruby:FTP上传文件并立即生效

是否有可能像PHP一样热部署Ruby? 通常我使用FTP上传PHP文件,然后它会自动提供。 Ruby可以像这样热部署它的文件吗? 您的评论欢迎。

Sinatra机架中间件劫持’/’根url

我正在尝试在我的Rails应用程序中使用Sinatra应用程序作为中间件。 我在Rails应用程序的/lib文件夹中测试了一个基本的Sinatra应用程序, use d中间件并设置路由。 这工作得很好。 我想要做的是提取Sinatra应用程序并将其作为gem包含在内。 这样我就可以独立运行Sinatra应用程序,或者在多个Rails应用程序中使用它。 Sinatra App # myrackapp/lib/myrackapp.rb module Myrackapp class Application < Sinatra::Base set :root, File.dirname(__FILE__) get "/" do "Rack Home" end get '/rackroute' do "Hello, Rack Page" end end end Myrackapp也有一个gemspec – 没有什么有趣的,但我可以发布,如果有必要的话。 Rails App # Gemfile gem ‘myrackapp’, path: “/Users/gareth/Code/myrackapp” – # config/application.rb module Myrailsapp class Application < Rails::Application […]

无法通过本地网络访问sinatra应用程序

我有rails应用程序。 如果我用rails s (端口3000)启动它,它可以在我的机器和本地网络上的每个设备上通过ip地址(在我的情况下为192.168.0.3)完美地工作。 我有sinatra申请。 如果我用ruby app.rb (端口4567)启动它,它在我的机器上运行完美,但它无法从本地网络上的其他设备访问。 两个应用程序都使用Thin作为应用服务器。 这与sinatra如何运作有关吗?

是否有针对Erlang的Sinatra风格的Web框架?

我在Ruby和Rails中编程了很长时间,然后我爱上了Sinatra框架的简单性,这使我能够构建一个页面的Web应用程序。 是否有适用于Erlang的Sinatra等Web框架? 我试过Erlyweb,但它似乎太重量级了。

Mount Sinatra应用程序位于rails应用程序内并共享布局

我想在我的rails应用程序中安装一个sinatra应用程序。 但我希望这个人分享相同的布局。 iframe可以工作,但你还有其他想法吗? 谢谢

如何从Sinatra中的特定页面重定向网页?

在Sinatra,如何从特定页面重定向网页? require ‘sinatra’ get “/A” do redirect ‘/B’ end get “/B” do # if comes from A # “IT COMES FROM A” # else not from A # “NOT FROM A , REDIRECT TO C” # redirect ‘/C’ # end end 我想学习如何做到这一点? 我可以使用JavaScript或HTML来做我想做的事吗? 或者,必须在Sinatra完成? 我试过这个,但它保持为null, get “/B” do mypath = URI(request.referer || ”).path if mypath […]