application.yml文件将配置包含为:
test:
STRIPE_API_KEY: sk_test_5USsmmhNqERIQhEQ1ZifD
STRIPE_PUBLIC_KEY: pk_test_JE8p4qWciPqYnJZKjlKH8
和application.rb包含代码:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)
module AppName
class Application < Rails::Application
config.autoload_paths += %W(#{config.root}/lib)
config.before_configuration do
env_file = File.join(Rails.root, 'config', 'application.yml')
YAML.load(File.open(env_file)).each do |key, value|
ENV[key.to_s] = value
end if File.exists?(env_file)
end
end
end
当我点击rake时,当我运行rails指定的以下命令时,我遇到了问题:现在,当我'耙'时,我得到错误 - “application.rb:28:in`[] =':没有将Hash隐式转换为String(TypeError)”这是行'ENV [key.to_s YAML.load块中的'= value' 1)首先我运行'bundle config --delete bin'。 (为什么要这样做) 2)然后我评论application.rb中的before_configuration块以防止上述错误并运行cmd“rake rails:update:bin” - 希望这个命令在没有上述错误的情况下运行,现在命令是通过注释成功完成的这一点和bin目录中的更新文件 3)然后我取消注释代码 - 现在任何rake或rails cmd都会给出上面提到的错误。
Bundler版本1.6.2,rails版本4.1.4,ruby版本2.1.2p95。
此外,在此问题出现之前,我曾忽略以下消息:
您的应用程序的./bin/rails看起来像是由Bundler生成的存根。
在Rails 4中,您的应用程序的bin /目录包含版本化的可执行文件 像任何其他源代码一样,而不是按需生成的存根。
以下是升级方法:
bundle config --delete bin # Turn off Bundler's stub generator
rake rails:update:bin # Use the new Rails 4 executables
git add bin # Add bin/ to source control
在此之前,应用程序运行良好。这个消息实际上是什么?明确的解释将非常感激。