无法删除'在Ruby Sequel中

时间:2014-03-22 20:42:44

标签: ruby sqlite sequel

我从Ruby的Sequel数据库库开始。

给出以下代码:

require 'sequel'
db = Sequel.connect('sqlite://users.db')
users = db[:users]
users.first.delete

Ruby抛出错误:

'delete' : wrong number of arguments (0 for 1) (ArgumentError)

我可以删除多条记录,但.first.delete不起作用。怎么了?

1 个答案:

答案 0 :(得分:6)

db[:users]为您提供了Sequel::SQLite::Datasetusers.first方法没有任何参数为您提供了Hash对象的用户。现在你要调用Hash#delete,这需要一个参数。但你并没有传递那个论点。因此,抱怨

而是如下:

# if you want to delete the the first matching argument of any specific
# attribute/db column
db[:users].filter(:key => 1).delete
# or if you want to delete the first record from db
db[:users].limit(1).delete

也请阅读此#drop方法。