我从一家离岸供应商手中接管了一个正在运行的Rails 3应用程序,并且rails控制台在这条线上失败了:
Settings.defaults[:processing_fee] = '0.99'
在文件config / initializers / settings.rb
中我已将此文件与git blame中的内容进行了比较并且匹配。我删除了这个文件的内容,它运行所以它不喜欢这一行。阅读SO我已经使文件名和常量奇异。在另一个SO post之后,我在config / application_settings.rb中创建了另一个文件。在控制台中找不到常量。将其移至/ railsizer上的/ initializers
/Users/sam/apps/tickat/config/initializers/application_settings.rb:1:in `<top (required)>': uninitialized constant SETTINGS (NameError)
来自这个内容:
SETTINGS[:processing_fee] = '0.99'
看来我的环境不接受我的常量。我首先注意到这推送到Heroku并且可以在控制台的开发中复制此错误。我问过周围,我被卡住了。我确定这是我搞砸的东西,山姆
答案 0 :(得分:1)
可能有人忘记在您的应用程序的回购中提交文件。
如果是这种情况,并且您无法从作者那里获取文件,则需要对设置进行反向工程。我会把它变成一个空模块:
module Settings
def self.defaults
@defaults ||= {}
end
end
在你收到更多错误之前,看看你能走多远......
编辑:您可以在控制台中看到此Hash是如何被初始化的:
irb(main):008:0> Settings.defaults
=> {}
irb(main):010:0> Settings.defaults[:a] = 1
=> 1
irb(main):011:0> Settings.defaults
=> {:a=>1}