Tag: 续集

ruby sequel gem – 如何使用pg_array扩展名查询数组

我正在使用pg_array扩展和续集版本4.1.1。 我添加了这样的扩展名: Sequel::Database.extension :pg_array 我创建了一个这样的列: alter_table :emails do add_column :references, “text[]”, null: true end 我可以将数组加载和检索到postgress数组列,就像使用普通数组一样。 从上面的链接中不清楚的是如何根据此数组列中的值执行查询。 例如,如果电子邮件表中的一行包含引用列中的这些值: references ——————————————————————– {} {5363f773bccf9_32123fe75c45e6f090953@Pauls-MacBook-Pro.local.mail} 如何查询电子邮件表以查找包含上述值的引用数组值的行: Email.where(references: ????)

续集:如何使用组和计数

简单地说,我如何使用Sequel进行此查询? select a.id, count(t.id) from albums a right join tracks t on t.album_id = a.id group by a.id

Ruby Sequel模块中的事务:如何获取DB对象?

我正在使用Sequel在Sinatra应用程序中工作。 我想做一个事务,根据我必须使用DB对象的手册,我怎样才能从我的代码的任何部分获取这个对象?

无法从Sequel gem连接mysql

当我尝试从Sequel连接MySQL时。 我收到这些错误: require ‘rubygems’ require ‘sequel’ DB = Sequel.connect(:adapter => ‘mysql’, :user => ‘root’, :host => ‘localhost’, :database => ‘scanty’,:password=>’xx’) DB.tables Sequel::DatabaseConnectionError: NameError uninitialized constant Mysql::CLIENT_MULTI_RESULTS from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/adapters/mysql.rb:98:in `connect’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/database.rb:92:in `initialize’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:166:in `call’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:166:in `make_new’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:153:in `available’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:144:in `acquire’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:143:in `synchronize’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:143:in `acquire’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/connection_pool.rb:105:in `hold’ from /opt/local/lib/ruby/gems/1.8/gems/sequel-3.2.0/lib/sequel/database.rb:471:in […]

使用UTC与续集?

我不希望在我当地的时区存储时间,但续集对我来说真的很难。 我可以在将它们放入那里之前将它们设置为UTC(有点痛苦),但是当我把它们取出时它假定它们是本地日期然后它们将来都是8小时。 这件事还没有实现吗? 如果是这样,有没有解决方法? 谢谢!

添加关联时续集访问many_to_many连接表

我正在使用Sequel建立一个心愿单系统。 我有一个wishlists和items表以及一个items_wishlists连接表(该名称是续集选择的名称)。 items_wishlists表还有一个额外的列id用于facebook id(所以我可以存储opengraph动作),这是一个NOT NULL列。 我也有Wishlist和Item模型与续集many_to_many关联设置。 Wishlist类还具有:select many_to_many关联集的:select选项,用于select: [:items.*, :items_wishlists__facebook_action_id] 。 有没有一种方法可以在创建关联时添加额外的数据,比如wishlist.add_item my_item, facebook_action_id: ‘xxxx’或者什么? 我创建关联后无法执行此操作,因为facebook id在列上具有NOT NULL。 谢谢你的帮助

有没有使用游标或智能提取的Ruby ORM?

我正在寻找一个Ruby ORM来取代ActiveRecord。 我一直在看Sequel和DataMapper。 它们看起来很不错,但它们似乎都不是基本的:当你不需要时,不要将所有内容都加载到内存中。 我的意思是我在ActiveRecord和Sequel上尝试了以下(或等效的)有很多行的表: posts.each { |p| puts p } 他们俩都记忆犹新。 它们似乎将所有内容加载到内存中,而不是在需要时获取内容。 我在ActiveRecord中使用了find_in_batches ,但这不是一个可接受的解决方案: ActiveRecord不是一个可接受的解决方案,因为我们遇到了太多问题。 为什么我的代码应该知道分页机制? 我很高兴配置页面大小的某个地方,但就是这样。 使用find_in_batches您需要执行以下操作: post.find_in_batches {| batch | batch.each {| p | 把p}} 但那应该是透明的。 那么有一个可靠的Ruby ORM可以正确获取吗? 更新: 正如Sergio所提到的,在Rails 3中你可以使用find_each ,这正是我想要的。 但是,由于ActiveRecord不是一个选项,除非有人能说服我使用它,所以问题是: 哪些ORM支持相当于find_each? 怎么做? 为什么我们需要一个find_each ,而find应该这样做,不应该吗?

如何在Sequel中放置原始SQL查询

我试图将SQL代码转换为Seqel从我的脚本运行它。 我该怎么转换这个: select code, count(1) as total from school_districts group by code order by total desc; 进入续集? 或者,有没有办法将原始SQL传递给续集? school_districts也将插入#{table_name} 。

从war文件中运行rake任务

我的代码库最初是用ruby编写的。 它有一个rakefile.rb文件来执行数据库迁移。 之后我将整个事情改为jruby,以便于部署,并且工作正常。 我面临的唯一问题是如何运行我的rake任务(执行数据库迁移)。 我试过了 java -jar GV_S.war -S rake db_migrate[1] 1是版本,但这不起作用。 这给了我: [Winstone 2012/03/23 18:04:56] – Beginning extraction from war file [Winstone 2012/03/23 18:04:56] – WARNING: The Servlet 2.4/2.5 spec XSD was unavailable inside the winstone classpath. Will be retrieved from the web if required (slow) [Winstone 2012/03/23 18:04:56] – No webapp classes folder […]

MacRuby,使用续集时出错

我刚刚使用命令sudo macgem install sequel安装了Sequel 。 它告诉我sequel-3.18.0已成功安装。 当我启动xcode并启动新的MacRuby应用程序时,它会为unit testing设置目标。 我用以下两行修改了stub_test.rb : require “rubygems” require “sequel” 尝试运行unit testing时,出现以下错误: /Users/…/macRuby Test/Tests/run_suite.rb:1:in `’: super: no superclass method `require’ for Sequel:Class (NoMethodError) 没有两个require语句,测试运行正常。 我试图谷歌这个,并在macruby.org上找到以下票 : 机票#930 SIGABRT在MacRuby 0.7中使用Sequel + SQLite3-Ruby gem […]在Sequel修补内核#require问题后,我可以加载Sequel和SQLite3,没有任何问题。 […]必需的库是Sequel(Patched for Kernel.require,而不是Sequel#self.require中的super)和SQLite3-Ruby。 […] 我在其他地方找不到关于这个补丁的任何信息,不过…… 有没有已知的问题? 这个错误消息意味着什么,以及我如何让它工作?