【问题标题】:NoMethodError: undefined method `configure' for main:Object on sinatra projectNoMethodError:未定义的方法'configure'为main:sinatra项目上的对象
【发布时间】:2017-12-13 11:32:06
【问题描述】:

所以我正在关注这个关于使用 Sinatra 设置 postgres 数据库的相当古老的教程:http://mherman.org/blog/2013/06/08/designing-with-class-sinatra-plus-postgresql-plus-heroku/

我已经按照建议设置了我的 environment.rb 和 rake 文件,如下所示:

configure :development do
  set :database, "sqlite:///dev.db"
  set :show_exceptions, true
end

configure :production do
  db = URI.parse(ENV["DATABASE_URL"] || 'postgres:///localhost/mydb')

  ActiveRecord::Base.establish_connection(
    :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme,
    :host => db.host,
    :username => db.user,
    :password => db.password,
    :database => db.path[1..-1],
    :encoding => 'utf8'
  )

end

和:

require './app_name'
require 'sinatra/activerecord/rake'

当我尝试使用以下方法创建迁移时:

rake db:create_migration NAME=create_applicants

这会出错:

NoMethodError: undefined method `configure' for main:Object
/Users/harxy/Projects/bridgey/environments.rb:1:in `<top (required)>'

对这里可能出了什么问题有什么想法吗?

谢谢。

【问题讨论】:

  • 是否安装了 Sinatra gem?你在任何地方打电话给require 'sinatra'吗?例如,请参阅此模板:github.com/zapnap/sinatra-template/blob/master/environment.rb
  • 是的,基本上就是这样。即使在他们在 github 上的示例中,他们的 environment.rb 文件中也没有 require 'sinatra' ......非常奇怪。但它的工作,谢谢你

标签: postgresql sinatra


【解决方案1】:

根据 Jack Bracken 的上述评论,您需要在您的 environment.rb 文件中使用 require 'sinatra' 才能使其正常工作。

【讨论】:

    猜你喜欢
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多