为什么我在rails SimpleRecord中得到了一个开箱即用的NameError



我安装了simple_record gem,用作rails应用程序的ActiveRecord替代品。我遵循了http://sites.appoxy.com/simple_record/并设置一个初始化器以包括以下内容:

SimpleRecord.establish_connection(AWS_CONFIG['access_key_id'], AWS_CONFIG['secret_access_key'])

当我用启动rails服务器时,我得到以下错误:

.../.rvm/gems/ruby-1.9.3-p125/gems/simple_record-2.2.0/lib/simple_record/active_sdb.rb:121:in `establish_connection': uninitialized constant SimpleRecord::ActiveSdb::ActiveSdbConnect::Aws (NameError)

它似乎试图找到类名"SimpleRecord::ActiveSdb::ActiveSdbConnect::Aws",但Aws不存在于该命名空间中。SimpleRecord确实需要Aws,但它与SimpleRecord是分开的。为什么rails会用SimpleRecord::。。。命名空间?

我对ruby和rails还很陌生,所以可能我对名称间隔的了解不足,这是一个简单的解决方案,但我已经搜索了几个小时,找不到任何问题的答案。

Ruby版本:Ruby 1.9.3p125(2012-02-16修订版34643)[x86_64-darwin11.3.0]

Rails版本:Rails 3.2.1

SimpleRecord版本:2.2.0

我很感激您的帮助,但经过几个小时的测试,我意识到问题是simple_record-gem和aws-sdk-gem之间的冲突。我试图将两者分开使用,但显然这会引起问题。

所以,我禁用了aws-sdk-gem,一切都如预期的那样工作。

因此,通过阅读错误消息,我们可以得到以下内容:

active_sdb.rb:121
https://github.com/appoxy/simple_record/blob/master/lib/simple_record/active_sdb.rb#L121

以下方法需要aws_access_key_id、aws_secret_access_key和其他一些参数

def establish_connection(aws_access_key_id=nil,aws_secret_access_key=nil、params={})@connection=Aws::SdbInterface.new(Aws_access_key_id,Aws_secret_access_key,params)终止

因此,我怀疑亚马逊网络服务访问密钥/秘密访问密钥尚未设置或设置错误。

您可能想更深入地研究代码,看看在哪里调用了该方法,以及还有什么可能导致问题

相关内容

  • 没有找到相关文章

最新更新