0

我已经从一家离岸供应商那里接手了一个正在运行的 Rails 3 应用程序,并且 Rails 控制台在这条线上失败了:

 Settings.defaults[:processing_fee] = '0.99'

在文件 config/initializers/settings.rb

我已经将此文件与 git blame 中的内容进行了比较,并且匹配。我已经删除了这个文件的内容并且它运行所以它不喜欢这一行。阅读所以我已经制作了文件名和常量单数。在另一个SO 帖子之后,我在 config/application_settings.rb 中创建了另一个文件。在控制台中找不到该常量。将其移动到 /initializers 产生在 rails 控制台

/Users/sam/apps/tickat/config/initializers/application_settings.rb:1:in `<top (required)>': uninitialized constant SETTINGS (NameError)

从这个内容:

 SETTINGS[:processing_fee] = '0.99'

似乎我的环境中的某些东西在这里不接受我的常量。我首先注意到这个推送到 Heroku,并且可以在控制台的开发中复制这个错误。我已经四处询问并被卡住了。我确定这是我搞砸了,山姆

4

1 回答 1

1

可能是有人忘记在您的应用程序的存储库中提交文件。

如果是这种情况,并且您无法从作者那里获取文件,则需要对设置进行逆向工程。我会把它变成一个空模块:

module Settings

  def self.defaults
     @defaults ||= {}
  end

end

看看你能走多远,在你得到更多错误之前......

编辑:您可以在控制台中看到这个哈希是如何初始化的:

irb(main):008:0> Settings.defaults
=> {}
irb(main):010:0> Settings.defaults[:a] = 1
=> 1
irb(main):011:0> Settings.defaults
=> {:a=>1}
于 2013-05-08T16:00:38.863 回答