jjzjj

sinatra-activerecord

全部标签

ruby - 防止 ruby​​ sinatra 中的 session 固定

ruby中的大多数session固定主题都与Rails相关。sinatra中是否存在任何session固定漏洞?在rails中,我们通常建议在分配session之前执行reset_session。我们如何防止sinatra中的session固定? 最佳答案 Sinatra默认使用Rack::Protectiongem来防止许多常见漏洞。您可能对其session劫持保护特别感兴趣。这些是Rack::Protectiongem防止的一些事情:跨站请求伪造真实性token:如果给定的访问token与session中包含的token相匹配,

ruby-on-rails - 如何使用 ActiveRecord 3.1 在不停机的情况下删除列?

在使用ActiveRecord运行应用程序时从表中删除列会导致错误,因为ActiveRecord会缓存列名。其他版本的ActiveRecord的解决方法是覆盖模型中的#columns方法并在迁移前过滤掉不推荐使用的列名称(基本上-对AR隐藏这些列)。这是有效的,因为所有与列名相关的方法都基于#columns调用在ActiveRecord3.1中,表结构的缓存被移至ConnectionPool,并且所有与列名相关的值(例如coluumns_hash)都被独立缓存(3.2使用ModelSchema.columns使其再次工作)在ActiveRecord3.1中是否有任何方法(除了具体适配器

sql - 来自 ActiveRecord::Base.connection.execute(sql) - PostgreSQL 的结果

在使用ActiveRecord::BaseConnection类执行SQL语句后,如何找到PostgreSQL处理的记录数?temp_sql="UPDATEtable_aSETcolumn_a='abc'WHEREcolumn_b=1"result=ActiveRecord::Base.establish_connection(@db).connection.execute(temp_sql)或者您可以建议更好的方法来做到这一点。请记住,上面的更新声明是一个简单的更新声明,以保持问题简短。我真正的查询是“基于集合”的,涉及复杂的创建临时表、更新、插入语句。

sql - Ruby ActiveRecord 和 sql 元组支持

假设底层数据库支持,ActiveRecord是否支持where子句中的元组?生成的where子句类似于:where(name,address)in(('John','123MainSt'))我试过:Person.where({[:name,:address]=>['John','123MainSt']})但它没有用。 最佳答案 tupleArray=[['John','123MainSt'],['Jane','124MainSt']]Person.where("(name,address)IN(#{(['(?)']*tupleArr

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

好的,这是一个简单的任务。在我向客户端呈现html之后,我想使用请求中的信息执行数据库调用。我正在使用sinatra,因为它是一个轻量级的微框架,但我真的支持ruby​​中的任何东西,如果它更快/更容易(Rack?)。我只想获取url并根据url将客户端重定向到其他地方。那么如何使用rack/sinatra作为一个真正的after_filter。after_filter我的意思是在响应发送到客户端之后。还是没有线程就无法实现?我fork了sinatra并在过滤器之后添加,但是没有办法刷新响应,即使是假设流式传输文件(显然是二进制文件)的send_data也在等待after_filter

ruby - 使用 Ruby Sinatra 创建单页代理

我正在尝试使用RubySinatra为特定网页创建一个简单的代理。我可以在C#中完成,我似乎无法为Sinatra解决这个问题,C#代码如下:usingSystem;usingSystem.Web;usingSystem.Net;usingSystem.IO;publicclassMap:IHttpHandler{staticvoidCopyStream(Streaminput,Streamoutput){byte[]buffer=newbyte[0x1000];intread;while((read=input.Read(buffer,0,buffer.Length))>0)outpu

ruby - 如何使用 "sinatra/reloader"?

我有我的web.rb我有require'rubygems'require'sinatra'require"sinatra/reloader"然后我通过双击web.rb快捷方式启动我的Web应用程序。在对web.rb进行任何更改后,我必须退出sinatra并再次运行它。我认为“sinatra/reloader”可以帮助我避免手动重新加载。配置(MSWindows)ruby1.8.7(2010-08-16补丁级别302)[i386-mingw32]辛纳屈(1.2.6,1.0)sinatra-advanced-routes(0.5.1)sinatra-reloader(0.5.0)sinat

ruby-on-rails - 跳过 :touch associations when saving an ActiveRecord object

有没有办法在保存时跳过更新与:touch关联的关联?设置:classSchool我希望能够在跳过触摸的地方执行如下操作。@school=School.create@student=Student.create(school_id:@school.id)@student.name="Trevor"@student.save#CanIdothiswithouttouchingthe@schoolrecord?你能做到吗?像@student.save(skip_touch:true)这样的东西会很棒,但我还没有找到类似的东西。我不想使用像update_column这样的东西,因为我不想跳过A

ruby-on-rails - 没有 ActiveRecord 的 form_for,表单操作不更新

我使用的是API而不是数据库,所以我使用的不是ActiveRecord,而是ActiveModel(我主要喜欢这里:railscasts.com/episodes/219-active-model)问题是,当我尝试编辑一个项目(在我的例子中是一个parking位)时,表单的Action仍然是创建的Action而不是更新。所以当我继续/parkings/2/edit编辑一个parking位时,表格仍然是:当它应该更像put隐藏字段和parkings/2作为Action时:有人知道根据路由设置form_for的方法和Action在哪里吗?我想做的是尽可能接近于将ActiveRecord与数

ruby-on-rails - Rails/ActiveRecord - AdapterNotSpecified,即使它是

我正在做RubyonRailsTutorial.对于前三章,它使用SQLite,但后来它建议在开发中使用PostgreSQL,以便更轻松地部署Heroku。在编辑我的database.yml和Gemfile以使用pg而不是sqlite3之后,它似乎可以工作-使用Rake运行测试时除外。它会弹出一个AdapterNotSpecified错误。C:/Ruby/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/connection_adapters/connection_specification.