我正在开发我的第一个Sinatra/CouchDB项目,并且遇到了一个我无法解释的错误。Sinatra/CouchDB错误?
这里是我的rackup(config.ru
)文件:
require 'rubygems'
require 'couchrest'
require 'patina'
set :environment, :development
set :root, File.dirname(__FILE__)
set :run, false
FileUtils.mkdir_p 'log' unless File.exists?('log')
log = File.new("log/sinatra.log", "a")
$stdout.reopen(log)
$stderr.reopen(log)
set :db, CouchRest.database!("http://127.0.0.1:5984/test")
run Sinatra::Application
而这里的应用程序文件(patina.rb
):
require 'rubygems'
require 'sinatra'
require 'couchrest'
require 'haml'
class Article < CouchRest::ExtendedDocument
use_database settings.db
property :title
timestamps!
view_by :title
end
get '/' do
@db = settings.db
haml :index
end
如果没有patina.rb
类定义,路线返回,显示一个页面@db
财产,因为我期待。但是,当我将类定义添加到patina.rb
时,我得到“Ruby(机架)应用程序无法启动”错误消息。
显然这与我的类定义有关,但我无法弄清楚问题是什么,错误信息似乎对我没有帮助。另外,我实际上更喜欢在一个单独的文件(Article.rb
)中有类定义,但我无法弄清楚如何在我的Sinatra应用程序的上下文中执行此操作。
任何帮助将不胜感激!
编辑:
请参阅下面的答案。
谢谢,感谢sinatra坚持沙发的例子。 – 2011-03-10 14:18:47