问题标签 [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 投票
2 回答
300 浏览

ruby - 新手西纳特拉问题

要使用 sinatra 返回文件,我一直在使用:

传入的 url 是“ http://localserver:4567/myfile.html

它有效,但我觉得肯定有更好的方法,但我在 sinatra 网站上找不到首选机制。

0 投票
1 回答
827 浏览

ruby - 我可以用 .htaccess 文件保护一些带有 sinatra 的路由吗?

我用 Sinatra 编写了一个小应用程序,并有一些管理路由(/admin/new、admin/edit/2、...),并希望使用 .htaccess 提示来保护它们。有人可以告诉我我是怎么做到的吗?

0 投票
1 回答
3280 浏览

xml - 如何通过 Sinatra Ruby 应用程序处理 POSTed XML

我正计划将 Sinatra 用于一个新的微型 Web 服务 (WS),我需要为客户整合它。

WS 将只有两种方法,一种通过 GET 访问,另一种通过 POST 访问。对于 POST 方法,客户端将向 sinatra WS 发送一个 XML 数据包,后者将解析数据并发出 200 OK HTTP 响应或 40x 错误代码。

我的问题是如何在 Sinatra 中解析传入的 POSTed XML 数据包?

以下是传入数据包的示例:

有没有办法通过 Sinatra 参数对象访问数据包,以便我可以用 Crack XML 之类的东西解析它?或者我是否需要使用某种 Rack 变量来获取发布到我的 WS 的整个 XML 数据包?

0 投票
1 回答
2304 浏览

ruby - Ruby & Datamapper 检查记录是否存在,在哪里?

我有一个使用 Sinatra、Datamapper 构建的基本 Ruby 应用程序,并使用 OAuth 进行用户身份验证。当我从 Oauth 服务收到数据时,我将新用户的记录保存在 sqlite3 数据库中。

我不知道该怎么做是如何去验证用户数据库表中不存在用户记录。我可以使用用户的唯一 id (uid) 来交叉检查 uid 是否已存储,但我不确定在哪里执行此操作。

我有 2 个课程和一个/callback路线。User类是 db 模型,Authentication类具有连接到 OAuth的各种方法,以及将调用 Authentication.save 方法的/callback路由。

我应该在Authentication.save方法中检查现有记录并返回布尔值或其他内容吗?在Authentication中创建一个类似于 Authentication.exists 的新方法?(那会是什么样子?)或者我应该在/callback路由中进行检查?

如果这不是 100% 清楚,我深表歉意,我很难描述我的问题,而且我是一个绝对的 Ruby 初学者......

0 投票
2 回答
8755 浏览

ruby - 使用 Sinatra 和 MongoDB——在 http 请求之间“保持活跃”的 mongodb 连接的推荐方法是什么?

我使用过 ASP.NET,现在我正在开发一个 Sinatra/MongoDB 应用程序。对于 ASP.NET 体系结构,给定请求使用的与数据库的连接来自 ADO.NET 管理的连接池。连接在请求之间的池中保持活动状态,因此不会为每个 http 请求支付建立和拆除连接的成本。

Sinatra MongoDB 应用程序中是否有类似的机制,或者我需要连接/断开每个请求?如果有机制,代码是什么样的?

EDIT1:以下不起作用。浏览器发送的每个 HTTP 请求都会命中 new.db 行,包括对 css、js、jpeg 文件的请求。

0 投票
3 回答
2381 浏览

ruby - Ruby Sinatra - 为公共文件夹中的文件添加自定义路由

我有一个可供不同客户使用的 Sinatra 应用程序。我希望为每个客户显示客户的公司徽标和自定义 layout.erb。

每个人的代码库基本相同。我所需要的只是一种在“Public”目录和“layout.erb”中轻松维护不同文件集的方法,并且在部署到远程服务器时,仅自动复制特定客户端的文件。

0 投票
2 回答
306 浏览

ruby - 乘客返回 0 字节页面下的机架上的 Sinatra

我正在尝试编写一个将在共享乘客服务器上运行的 Sinatra 应用程序。现在,我很高兴能得到一个“hello world”,但有些事情不太正常。我有:

配置.ru

我的应用程序.rb

当然,我对 sinatra 需要的所有支持库都在 /vendor/sinatra-lib 下。我可以在我的本地机器上加载这个精确的负载,它运行起来就像一个冠军。但是,在远程机器上,我尝试访问的任何 URL 都会得到 0 字节的响应。请注意,我有一个 /public 目录,我可以成功地查看其中的页面,所以我猜 Rack 仍在响应。此外,我可以毫无问题地运行基本的 Rack 应用程序,因此必须正确配置 Rack(至少,正确地运行 Rack 应用程序)。

此时,我唯一能想到的就是检查远程服务器上的 Rack 等版本。我没有完全控制这个盒子,所以我真的没有日志输出可以分享。如果它很重要,我可以尝试追赶它,但我希望有人会跳出来。

0 投票
1 回答
740 浏览

ruby - 瘦(红宝石)正在呕吐

简单的 sinatra 应用程序:

然后:

当我点击http://localhost:4567时,它会断开连接,我得到:

所有宝石都是最新的。我正在运行 ruby​​ 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0]

0 投票
2 回答
1447 浏览

ruby - 在 Cucumber 中存根 Sinatra 助手

我目前正在努力从Cucumber中删除我的Sinatra应用程序的辅助方法。

我有一个带有简单会话身份验证(通过 cookie)的Sinatra应用程序,我想通过为我的Cucumber场景删除logged_in?辅助方法来关闭身份验证。Sinatra 和 Cucumber 似乎在会话方面存在问题,所以我考虑只使用 Mocha 来解决这个问题。

但是我不知道如何Sinatra::ApplicationGiven-Block 中访问该实例以存根该方法。

0 投票
4 回答
4086 浏览

ruby - 在 Sinatra(ruby web 框架)中我只想执行一次的代码放在哪里?

我不知道这是一个红宝石问题还是一个 Sinatra 问题,因为我对这两个问题都很陌生。以下代码不起作用,我理解为什么,因为第一个 my_variable 是其块的本地代码。我只是不知道正确的语法。

EDIT1 - 以下工作,但我想我对配置块的正确目的感到困惑。