问题标签 [sinatra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2564 浏览

ruby - Ruby/Rack 中的多部分响应

我希望我的服务器发送一个多部分响应(multipart/x-mixed-replace)。我更喜欢使用 Sinatra 框架或通用 Rack 应用程序的某种解决方案,但 ruby​​ 中的任何示例都会很好。这相当于我在 PHP 中尝试做的事情:

0 投票
1 回答
2384 浏览

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

好的,这是一个简单的任务。在将 html 呈现给客户端后,我想使用请求中的信息执行 db 调用。

我正在使用 sinatra,因为它是一个轻量级的微框架,但如果它更快/更容易(机架?),我真的很喜欢 ruby​​ 中的任何东西。我只想获取 url 并根据 url 将客户端重定向到其他地方。

那么,如何使用 rack/sinatra 作为一个真正的 after_filter。而 after_filter 我的意思是在响应发送到客户端之后。还是没有线程就无法实现?

我分叉了 sinatra 并添加了过滤器,但是没有办法刷新响应,即使是假设流文件(显然是二进制文件)的 send_data 也会等待 after_filters。

我见过这个问题:Multipart-response-in-ruby,但答案是针对rails的。而且我不确定它是否真的刷新了对客户端的响应,然后允许之后进行处理。

Rack::Callbacks 在回调之前和之后都有一些回调,但即使是那些看起来它们会在响应发送到客户端之前运行这里的Rack::Callbacks实现(添加评论):

所以我知道我可以用 rake 通过 shell 调用后台任务。但是最好不要太...还有NeverBlock但这对于执行单独的进程而不延迟响应是否有好处,或者它仍然会使应用程序整体等待(我认为它会)?

我知道这很多,但简而言之,它是在 ruby​​/sinatra/rack 中发送响应之后真正运行的简单 after_filter。

感谢您阅读或回答我的问题!:-)

0 投票
3 回答
5233 浏览

ruby - 如何在 Sinatra 中使用带有斜线的参数?

sinatra时,我遇到了一个小问题:当我使用带有斜杠的参数时,它会混淆路由器引擎。那么有没有一种很好的方法来处理这种参数而无需对其进行编码?

代码看起来像

我打算让 /add/ http://sctackoverflow.com/ 之类的东西工作

0 投票
8 回答
8944 浏览

ruby - 西纳特拉成功案例

您成功使用 Sinatra 了吗?这是一个什么样的项目?在什么情况下你会推荐使用 Sinatra 而不是 Rails 或 Merb?

0 投票
4 回答
466 浏览

html - 确保链接不在域根目录时的最佳方法/实践?

我一直在想这个问题,但是什么是确保在 Web 应用程序(RoR、Sinatra、PHP 等)中创建链接时(使用方法生成或写入)的最佳方法手)无论您是否位于域的根目录,它们都会转到正确的位置:http ://www.example.com/或http://www.example.com/this/is/where/the/应用程序/是/

我的想法是让最终用户在您的应用程序配置中的某处指定一个文档根目录,并使用它,但是我正在尝试一种很好的方法来做到这一点,而无需最终用户进行任何配置。

编辑:最终用户是指在服务器上设置应用程序的人。

编辑:我可以使用开头的“/”来始终获取相对于域的链接,但问题是如果应用程序本身不在根目录下,而是像http://www.example.com/this这样的地方/is/where/the/app/is/所以我想说gen_link('/')并让它返回/this/is/where/the/app/is/gen_link('/some/thing')返回/this/is/where/the/app/is/some/thing

0 投票
2 回答
413 浏览

sinatra - 为什么在使用 Rack 和 Phusion Passenger 重新启动 Sinatra 应用程序后第一次请求时出现错误?

在我触摸 tmp/restart.txt 并且我的应用程序重新启动后,第一个请求会引发错误,通常是关于找不到 Haml::Engine 或其他一些 gem。第二个和后续请求都可以正常工作。我在运行 Rack 0.4.1 和 Sinatra 0.3.3 的 Dreamhost 上遇到了这个问题,但是在移动到我自己的主机并运行更新的 Rack (0.9.1) 和 Sinatra (0.9.0.4) 之后,我仍然看到了这个问题。

如果您不知道确切的答案,但有关于如何追踪它的提示,请告诉我。

这是我的 config.ru:

0 投票
3 回答
3536 浏览

ruby - 如何将haml与heroku一起使用?

我尝试在没有 gem 的情况下使用 sinatra 让 haml 工作(据我所知,Heroku 不允许安装 gem)

到目前为止我所做的:

  • 在我的项目中克隆haml git repo

  • 添加:需要 'haml/lib/haml.rb' 到我的 sinatra 主文件

以下作品:

但以下没有:

我得到错误:

NoMethodError - 未定义的方法each' for nil:NilClass (haml):20:in渲染'

./haml/lib/haml/engine.rb:152:in `render'

./haml/lib/haml/engine.rb:152:in `instance_eval'

./haml/lib/haml/engine.rb:152:in `render' ...

还有其他文件需要吗?有任何想法吗 ?

0 投票
3 回答
330 浏览

ruby-on-rails - 我只需要 ActiveRecord 和 ActiveMailer,我应该使用 Rails/Merb 吗?

我有一个小型 Web 应用程序,目前正在Sinatra上运行。它只有两页,所以我真的不需要控制器或很多视图。我已经包括 ActiveRecord 与数据库交互和 ActiveMailer 发送和接收邮件。

在这么小的项目上使用 Rails 或 Merb 是否值得?我发现自己添加了 Rails 中包含的功能。我之前没有任何使用 Merb 的经验,所以我真的不知道这是否是一个合适的选择。但据我所知,Merb 可能是进行只需要几个组件的项目的方式。

谢谢。

0 投票
2 回答
1593 浏览

ruby - 在新的 Sinatra 扩展中集成模型和视图

所以我想使用新的可能性来为Sinatra创建扩展。

我的扩展需要集成模型和一些视图/模板,但我不知道如何或在哪里集成它们?

是否有人已经构建了比文档中的示例更复杂的东西?

0 投票
3 回答
2054 浏览

ruby - 使用 Webrat 进行测试时如何处理 cookie?

我正在使用 Webrat 为基于 Sinatra 的应用程序编写 Cucumber 测试。对于某些测试,我需要实现一个场景,例如

我定义这样的步骤:

成功时会创建一个 cookie

然后在用户尝试通过辅助方法访问管理页面时在视图中进行验证:

而且看起来 Webrat 不存储 cookie。测试不报告任何错误,但“logged_in?” 在视图中总是错误的,就像 cookie 没有保存一样。

难道我做错了什么?如果这正是 Webrat 的工作方式,那么最好的解决方法是什么?