我正在尝试添加一个帮助程序以将 mongo db 连接到我的模块化 Sinatra 应用程序
当我foreman start
在控制台中输入时,我得到:
/home/sunny/Programs/landing_pages/app.rb:17:in `block in <class:LandingPages>': undefined local variable or method `connect' for LandingPages:Class (NameError)
我的app.rb
文件如下所示:
require 'sinatra/base'
require 'sinatra/partial'
require 'sinatra/db_helper'
require 'bundler/setup'
require 'mongo'
class LandingPages < Sinatra::Base
helpers Sinatra::DbHelper
configure do
$collection = connect
end
end
我的./lib/sinatra/db_helper.rb
样子是这样的:
require 'sinatra/base'
module Sinatra
module DbHelper
def connect
conn = Mongo::Connection.new("localhost")
db = conn.db("leads")
db.collection("laws")
end
end
helpers DbHelper
end
我的config.ru
样子是这样的:
require './app'
run LandingPages
我以为我正确地遵循了以下说明:
http://www.sinatrarb.com/extensions.html
但我不完全确定。我不是在做一个 gem,而只是一个 sinatra 应用程序,所以我的目录层次结构可能不正确。我没有 rake 文件或 gem 规范。我需要它们吗?
一些谷歌搜索也发现了这一点:
Dave Sag 完美地回答了我的问题,但我无法让它发挥作用。