NoMethodError:sinatra项目中main:object的未定义方法`configure'

时间:2017-12-13 11:32:07

标签: postgresql sinatra

所以我正在关注这个关于使用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)>'

对这里可能出现的问题有什么想法?

感谢。

1 个答案:

答案 0 :(得分:0)

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