使用dashing.io制作一些很棒的仪表板。我知道dashing是用ruby和sinatra构建的,并使用特定目录中的.erb文件来制作仪表板。我在使用.erb作业设置dashing或将信息输入仪表板时没有任何问题。我想做的是使用从我的一个仪表板.erb文件中的uri字符串传递的变量。仪表板目录还有一个layout.erb文件,看起来像模板,这就是我要放入的内容:然而,这在sinatra中给我带来了错误。理想情况下,我想添加一个uri参数来更改仪表板。所以我想在sample.com:3030/mydashboard运行我的dashing实例添加一个uri参数sample.com:
我有一个可供不同客户使用的Sinatra应用程序。我希望为每个客户显示客户的公司Logo和自定义layout.erb。每个人的代码库基本相同。我所需要的只是一种方法,可以轻松地在“公共(public)”目录和“layout.erb”中维护一组不同的文件,并且在部署到远程服务器时,仅自动复制特定客户端的文件。 最佳答案 一种可能的方法是为每个客户端设置一个view和public目录,并设置正确的:views和:public每个请求的选项get'/:client/...'doset:views,File.dirname(__FILE__
我正在使用Sinatra构建一个中型应用程序,当我只有一个app.rb文件时,一切都很好,我在Github上遵循了Aslak的指导:https://github.com/cucumber/cucumber/wiki/Sinatra随着应用程序变大一点,app.rb文件开始膨胀,我使用Sinatra::Base将很多位重构为“中间件”样式模块,使用rack-up文件映射事物(config.ru)等该应用程序运行良好-但我的规范爆炸了,因为没有更多的app.rb文件可供webrat运行(如上面的链接中所定义)。我已经尝试找到有关如何使用它的示例-我认为我只是还不习惯Cuke的内部结构,因为
我今天开始编写一个简单的Sinatra应用程序,我试图了解错误报告,但由于某种原因我无法使其正常工作。我知道这里,http://railsapi.com/doc/sinatra-v1.0/,它谈到了使用错误报告/处理但是当我运行他们的示例时我无法让它工作。require'sinatra'error400..510do'Boom'endget'/say/*'doparams[:splat]end当我在我的计算机上运行该应用程序时,我收到404错误代码,但'Boom'文本不会显示在浏览器中,只会显示浏览器404页面。我确定我做错了什么,但就是想不通。 最佳答案
我有一个Sinatra应用程序和DRb服务器对象配对。当我尝试将Sinatraparams散列传递到我的服务器对象上的方法时,我得到了DRb::DRbConnError...DRb::DRbServerNotFound,但当我直接传递一个简单的散列时,同样的方法有效。为什么我在使用Sinatra参数散列时会收到此错误?解决此问题最简单、最正确的解决方法是什么?这是一个简单的测试用例:#server.rbrequire'drb'classServer;defecho(hash);hash;end;endDRb.start_service'druby://localhost:9007',S
我正在克隆这个存储库:https://github.com/freeformz/sinatra-jruby-heroku.git尝试在Heroku的Cedar堆栈上使用JRuby/Sinatra。我按照随附的说明进行操作,一切都在“工头开始”的情况下在本地运行良好。然后我gitpush到Heroku并且它最初加载正常但是当我尝试访问该站点时我在日志中收到错误消息:jruby:Nosuchfileordirectory--trinidad(LoadError)看来jruby找不到“/app/.gems/bin/trinidad”文件。我最初认为它不存在,因为.gems/在.gitigno
我还没有找到一个好的答案。如何让我的Rails应用程序和Sinatra应用程序(安装在我的Rails应用程序的config.ru中)成功共享session?如果我先访问我的Sinatra应用程序,然后访问Rails应用程序,我会收到类似undefinedmethodsweepfor{}:Hash的错误,大概是因为Rails使用Hash的自定义子类来存储session信息,而Rack::Session::Cookie没有。到目前为止我的代码:config.rumap"/"dorunMyRailsApp::Applicationendmap"/sinatra"douseRack::Sess
我设置了摘要身份验证,就像sinatrarb网站上的示例一样。#config.rurequire'./main'app=Rack::Auth::Digest::MD5.new(Sinatra::Application)do|username|{'foo'=>'bar'}[username]endapp.realm='ProtectedArea'app.opaque='secretkey'runapp我想知道是否有人知道如何或可以向我指出有关此问题的指南。谢谢。 最佳答案 SinatraFAQ有一个使用Test::Unit和Basic
我使用Sinatra框架在Heroku上设置了我的ruby应用程序。Web服务器是unicorn,当请求在memcached的缓存中找到其内容时(通过Dalligem),它会显示cache:[GET/]fresh所以它显然是从缓存中检索内容。但是,当我检查header时,响应代码始终是200而不是304。我的印象是,当页面从缓存中提供时,因为它仍然是新鲜的,响应代码应该是304。这是否按预期工作,我误解了什么?当Unicorn在缓存中找到某些内容时,它是否只是不提供304代码?我应该不担心这种事情吗?感谢任何指导。 最佳答案 U
我想仅在特定路线/页面上显示消息。本质上,如果在/route上显示一条消息。我尝试浏览Sinatra文档,但找不到具体的方法。是否有Ruby方法可以实现此目的?编辑:这是我想做的一个例子。get'/'doerb:indexendget'/page1'doerb:page1endget'/page2'doerb:page2end*******************不知道如何使用Ruby/Sinatra定位当前页面并将其构造为if语句。 最佳答案 有几种方法可以解决这个问题(顺便说一句,我将使用Haml,即使您使用了ERB,因为它对我