Sinatra Activerecord错误

时间:2014-05-21 13:28:17

标签: sinatra

我在构建数据库的小型sinatra应用程序中遇到问题

在Rakefile中:

require 'sinatra/activerecord/rake'
require './todo'

在myApp.rb中:

require 'sinatra'
require 'shotgun'
require 'sinatra/activerecord'
set :database, "sqlite3:///foo.sqlite3"

class Todo < ActiveRecord::Base
end

但是当我运行应用程序时,它会返回给我:

SQLite3::SQLException: no such table: todos: SELECT "todos".* FROM "todos"

1 个答案:

答案 0 :(得分:0)

错误告诉您表todos不存在。

解决方案是创建一个名为todos的表。你可以在带有create table todos(params)的sqlite3 shell中做到这一点,其中params是表格将要保存的不同参数。

在程序内部执行此操作,我理解ActiveRecord使用迁移来更新数据库。 @Morgan提供a rakefile(来自this question)来处理此问题。

或者,您可以查看Datamapper来处理数据库交互,由于您没有使用rails,因此您可能会更容易解决这些问题。