草庐IT

my_sinatra_app

全部标签

ruby - 在 Sinatra 中使用 Rack::CommonLogger

我有一个用Sinatra编写的小型网络服务器。我希望能够将消息记录到日志文件中。我已经通读了http://www.sinatrarb.com/api/index.html和www.sinatrarb.com/intro.html,我看到Rack有一个叫做Rack::CommonLogger的东西,但我找不到任何关于如何访问和使用它来记录消息的示例。我的应用程序很简单,所以我将它编写为顶级DSL,但如果需要的话,我可以切换到从SinatraBase继承它。 最佳答案 Rack::CommonLogger不会向您的主应用程序提供记录器,

ruby - 如何使用 Sinatra 进行 Post/Redirect/Get?

Sinatra中Rails的redirect_to方法有什么等价物?我需要遵循表单提交的Post/Redirect/Get流程,同时保留传递到我的View的实例变量。使用redirect方法时实例变量丢失。 最佳答案 Sinatra中的重定向是最简单易用的。所以下面的代码可以解释:require'rubygems'require'sinatra'get'/'doredirect"http://example.com"end您也可以像这样重定向到当前应用程序中的另一个路径,尽管此示例将删除一个方法。delete'/delete_pos

ruby - Sinatra 子目录 View

我希望能够从./views的子目录(例如./views/admin)中获取SinatraView。我知道您可以像这样设置View:set:views,Proc.new{File.join(root,"templates")}但是我怎样才能只对文件的一部分进行设置呢? 最佳答案 我不确定你到底在问什么,但你可以通过这样做在views/admin中呈现一个View:erb:"admin/report"如果您询问如何在调用erb:report时自动查看views的子目录,我不知道该怎么做,我不知道不认为您想要(如果不同目录中的两个View

ruby - 如何使用 Passenger 在 Apache 下设置 Sinatra 应用程序?

假设我有最简单的单文件Sinatra应用程序。helloworld在他们的主页上就可以了。我想在Apache下使用PhusionPassenger,又名mod_rails运行它。我需要什么样的目录结构?我必须在vhostconf文件中放入什么?我知道我需要一个rackup文件。里面有什么,为什么? 最佳答案 基本目录结构:app|--config.ru#虚拟主机文件:ServerNameapp.example.comDocumentRoot/path/to/app/publicOrderallow,denyAllowfromall配

ruby - 如何在 sinatra 中引发自定义错误代码?

我在我的sinatra应用程序中执行了以下操作:disable:show_exceptionsdisable:raise_errorserrordohaml:error,:locals=>{:error_message=>request.env['sinatra.error'].to_s}endget'/error'doraise"ERROR!!"end如果我访问/error,我会得到一个500-InternalServerError响应代码,这是上帝想要的。但是如何将代码更改为404或501等?答案:disable:show_exceptionsdisable:raise_error

ruby - Sinatra 中的动词不可知匹配

我们可以写get'/foo'do...end和post'/foo'do...end这很好。但是我可以在一个路由中组合多个HTTP动词吗? 最佳答案 这可以通过multi-routeextension实现这是sinatra-contrib的一部分:require'sinatra'require"sinatra/multi_route"route:get,:post,'/foo'do#"GET"or"POST"prequest.env["REQUEST_METHOD"]end#Orformodule-styleapplicationsc

ruby - Sinatra - 如何获取服务器的域名

我正在尝试在我的Sinatra应用程序中获取域名,但作为一个新手,我真的很难弄清楚如何做到这一点,而且我知道这一定是可能的!Rack::Request#host_with_port看起来很有前途,但我不知道如何从我的应用程序中获取它-如何在我的Ruby代码中从Rack中获取内容?或者还有另一种方法-我想我真的不想每次发生请求时都这样做(虽然这不是太糟糕),但我认为如果我能只做一次会更好当应用程序加载时。有什么提示吗? 最佳答案 只需在您的代码中使用request.host。get"/"doputsrequest.host#=>loc

ruby - 你用 Sinatra 做什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我对Sinatra(ruby框架)感到困惑。它是轻量级的Rails替代品还是可以让它们并排运行?你能做一个网络应用程序(比如在Rails中)吗?例如Twitter克隆?

ruby - 在 Sinatra(Ruby) 中,我应该如何创建在应用程序生命周期中只赋值一次的全局变量?

在Sinatra中,我无法创建在应用程序生命周期中仅分配一次值的全局变量。我错过了什么吗?我的简化代码如下所示:require'rubygems'ifRUBY_VERSION这导致nil2在终端和,2在浏览器中。如果我尝试将@a=1放入initialize方法中,我会在WebApp.run!中遇到错误线。我觉得我错过了一些东西,因为如果我不能有全局变量,那么我如何在应用程序实例化期间加载大数据?beforedo似乎每次有来自客户端的请求时都会被调用。 最佳答案 classWebApp请注意,如果您使用Shotgun或其他在每次请求时

ruby - ruby、sinatra 和 haml 中的联系表单

我是这三个方面的新手,我正在尝试为网站编写一个简单的联系表。我想出的代码如下,但我知道它存在一些基本问题(由于我对sinatra缺乏经验)。任何帮助完成这项工作的帮助将不胜感激,我似乎无法弄清楚/找到此类事情的文档。来自联系页面的haml代码:%form{:name=>"email",:id=>"email",:action=>"/contact",:method=>"post",:enctype=>"text/plain"}%fieldset%ol%li%label{:for=>"message[name]"}Name:%input{:type=>"text",:name=>"mes