jjzjj

sinatra-activerecord

全部标签

ruby - sinatra路由中的几个可选参数

我需要Sinatra路由以下列方式运行:GET/list/20/10#Get20itemswithoffset10GET/list/20#Get20itemswithdefaultoffsetGET/list#Getdefaultnumberofitemswithdefaultoffset我明白,我可能会将值作为查询传递:GET/list?limit=20&offset=10但我想如上所述传递它们。我很确定有一种方法可以向Sinatra/Padrino解释我想做什么,但我目前完全被困住了。我试过:get:list,:map=>'/list',:with=>[:limit,:offset

ruby-on-rails - Rails ActiveRecord::StatementInvalid: PG::Error: ERROR: 缺少表的 FROM 子句条目

我有一个复杂的ActiveRecord查询,我正在根据用户的选择构建具有不同范围的查询。我正在使用2个gem,这似乎是有问题的,但我找不到谁是两者之间的罪魁祸首:Texticle(用于Postgresql完整搜索)(2.0.3)Squeel(用于ActiveRecord查询中的ruby​​语法)squeel(0.9.5)Arel或ActiveRecord本身这是我的类定义:classEvent"Entity",:foreign_key=>:entity_idbelongs_to:place,:class_name=>"Entity",:foreign_key=>:place_idcla

ruby - 在 Sinatra 中缓存响应的最佳方式?

我正在使用我用Sinatra创建的API构建一个简单的应用程序,该API返回一些JSON。这是相当多的JSON,我的应用程序的API依赖于对其他API的数百个请求。我大概可以缓存5天左右的结果,数据完全没有问题。我只是不是100%确定如何实现缓存。我将如何使用Sinatra做到这一点? 最佳答案 就我个人而言,比起memcached,我更喜欢将redis用于此类事情。我有一个应用程序,我非常广泛地使用redis,以与您描述的类似的方式使用它。如果我进行未缓存的调用,页面加载时间会超过5秒,而使用Redis,加载时间会下降到0.3秒左

ruby - Sinatra 变量作用域

采用以下代码:###Dependenciesrequire'rubygems'require'sinatra'require'datamapper'###Configurationconfig=YAML::load(File.read('config.yml'))name=config['config']['name']description=config['config']['description']username=config['config']['username']password=config['config']['password']theme=config['conf

ruby-on-rails - SQL 注入(inject)和 ActiveRecord

这对SQL注入(inject)安全吗:Guest.where(:event_id=>params[:id])我在发送params[:id]时没有进行任何类型的清理。一般来说,所有这些activerecord方法都安全吗?(如where、joins等。)如果不是,安全的最佳做法是什么?另外,是否有任何我应该注意的警告/边缘情况?谢谢 最佳答案 ActiveRecord的所有查询构建方法,如where、group、order等等,都可以安全地防止SQL注入(inject)ASLONGAS您不向它们传递原始SQL字符串。这容易受到SQL注

ruby-on-rails - 混合 ActiveRecord 查找条件

我想根据created_on>=somedateANDnameINsomelistofnames的组合查找记录。对于“>=”,我必须使用sql条件。对于“IN”,我必须使用条件散列,其中键是:name,值是名称数组。有没有办法将两者结合起来? 最佳答案 您可以在rails2.1及更高版本中使用命名作用域ClassTest"created_on>2005-01-01"named_scope:named_fred,:conditions=>{:name=>"fred"}end那么你可以做Test.created_after_2005.n

ruby - 从 Sinatra 访问 header

我正在尝试访问sinatra过滤器中的header。我的请求包含header“HTTP_AUTH”,但我无法访问它。我的过滤器是beforedohalt403unlessrequest['HTTP_AUTH']=='test'end根据我的机架测试,它工作正常。browser.get'/mypath',"CONTENT_TYPE"=>"application/json","HTTP_AUTH"=>'test'但是当我尝试从其他来源访问时,我无法访问它。如果我putsrequest.env我可以看到token在请求中,但我无法访问它。"HTTP_CONNECTION"=>"close",

ruby - Sinatra 不会在 Chrome 上通过重定向保持 session

Sinatra没有在Chrome上通过重定向保留我的session。它正在创建一个全新的session,我正在丢失我以前的所有session数据。举个例子(类似于theSinatradocs),我正在做这样的事情:enable:sessionsget'/foo'dosession[:user_id]=123session[:session_id]#"ABC",forexampleredirectto('/bar')endget'/bar'do#thisis"DEF"whenrespondingtoChrome(wrong),#but"ABC"whenrespondingtoFirefo

ruby - Sinatra 服务器推送?

将数据从用Sinatra编写的服务器推送到客户端的最佳方法是什么?类似于聊天室,但没有每2500毫秒进行一次Ajax轮询。我知道Rails中的Juggernaut,但对Sinatra很好奇。 最佳答案 谷歌搜索了一下thisblogpostbyMarc-AndréCournoyer,其中讨论了瘦Web服务器的异步响应功能,并包含一个指向async-sinatra库的链接来执行此操作。你也可以看看orbited-ruby,Orbited的Ruby实现cometd服务器。这两个看起来都非常新且未经测试,因此您可能需要自己进行一些修改才能

ruby - Sinatra,上传表单中的进度条

我正在开发一个Sinatra应用程序,它包含一个上传表单,并带有一个进度条,指示上传完成了多少。该过程,如ryandahl所述,如下:HTTPuploadprogressbarsareratherobfuscated-theytypicallyinvolveaprocessrunningontheserverkeepingtrackofthesizeofthetempfilethattheHTTPserveriswritingto,thenontheclientsideanAJAXcallismadeeverycouplesecondstotheserverduringtheuploa