我在构建数据库的小型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"
答案 0 :(得分:0)
错误告诉您表todos
不存在。
解决方案是创建一个名为todos
的表。你可以在带有create table todos(params)
的sqlite3 shell中做到这一点,其中params是表格将要保存的不同参数。
在程序内部执行此操作,我理解ActiveRecord使用迁移来更新数据库。 @Morgan提供a rakefile(来自this question)来处理此问题。
或者,您可以查看Datamapper来处理数据库交互,由于您没有使用rails,因此您可能会更容易解决这些问题。