ruby orm插入的记录

aurhwmvo  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(253)

我的ruby orm在使用sqlite3时遇到了一个问题
我的orm有一个save函数,它将记录保存在数据库中,并将objects示例id设置为新记录的id:

def save
    sql = "INSERT INTO #{table_name_for_insert} (#{col_names_for_insert}) VALUES (#{values_for_insert})"
    DB[:conn].execute(sql)
    @id = DB[:conn].execute("SELECT last_insert_rowid() FROM #{table_name_for_insert}")[0][0]
end
``` `table_name_for_insert` 返回“学生” `col_names_for_insert` 返回“name,grade” `values_for_insert` 返回“'sam','11'”
然而,当 `SELECT * FROM students` 在save方法之后运行返回的记录是:

[{"id" => 1,
'name" => "Sam",
"grade => 11,
0 => 1,
1 => "Sam",
2 => 11 }]

我期待前三列,但我不知道为什么后三列存在。
如果有人知道发生了什么我很感激,我肯定这是我的愚蠢错误。
xa9qqrwz

xa9qqrwz1#

这是由于使用了不正确的splite3 gem版本造成的。在那之后,我不再有额外列的问题。

相关问题