【问题标题】:Setting sinatra environment variables to a symbol将 sinatra 环境变量设置为符号
【发布时间】:2015-01-07 01:30:29
【问题描述】:

我正在尝试设置 Sinatra 环境变量,以便它们传递一个符号,而不仅仅是一个字符串。现在我收到以下错误消息:DEPRECATION WARNING: Passing a string to ActiveRecord::Base.establish_connection for a configuration lookup is deprecated, please pass a symbol (:development) instead.

我的.env 文件:(使用 dotenv gem)

RACK_ENV=development

我的environments.rb 文件(我的 app.rb 文件中需要此文件)

environment = ENV['RACK_ENV']
db_options = YAML.load(File.read('./config/database.yml')[environment])
ActiveRecord::Base.establish_connection(db_options)

我尝试将 .env 设置为:

RACK_ENV=:development

但这会给我一个错误no implicit conversion of nil into String

【问题讨论】:

  • 试试ActiveRecord::Base.establish_connection(:development) 可能吗?
  • 但我想从database.yml读取散列/变量
  • 我认为它读取的默认位置来自config/database.yml(虽然我不确定......)
  • 有了 Sinatra-AR,是的,你是对的。

标签: ruby activerecord sinatra


【解决方案1】:

由于 Sinatra-Active Record 默认读取 database.yml 文件,这意味着我不需要显式读取该文件。相反,我只写了以下内容:

.env

RACK_ENV=development

环境.rb

environment = ENV['RACK_ENV'].to_sym
ActiveRecord::Base.establish_connection(environment)

【讨论】:

    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2013-01-29
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多