Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么使用rails SimpleRecord时会出现名称错误?_Ruby_Ruby On Rails 3_Gem_Amazon Simpledb - Fatal编程技术网

Ruby 为什么使用rails SimpleRecord时会出现名称错误?

Ruby 为什么使用rails SimpleRecord时会出现名称错误?,ruby,ruby-on-rails-3,gem,amazon-simpledb,Ruby,Ruby On Rails 3,Gem,Amazon Simpledb,我安装了simple_record gem,用作rails应用程序的ActiveRecord替代品。我按照中的说明设置了一个初始值设定项,以包括以下内容: SimpleRecord.establish_connection(AWS_CONFIG['access_key_id'], AWS_CONFIG['secret_access_key']) 当我用启动rails服务器(rails s)时,我得到以下错误: .../.rvm/gems/ruby-1.9.3-p125/gems/simple_

我安装了simple_record gem,用作rails应用程序的ActiveRecord替代品。我按照中的说明设置了一个初始值设定项,以包括以下内容:

SimpleRecord.establish_connection(AWS_CONFIG['access_key_id'], AWS_CONFIG['secret_access_key'])
当我用启动rails服务器(rails s)时,我得到以下错误:

.../.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:来预编Aws呢。。。名称空间

我对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

因此,阅读错误消息,我们可以得到以下内容:active_sdb.rb:121

active_sdb.rb:121 以下方法需要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) end def建立连接(aws\U访问\U密钥\U id=nil,aws\U机密\U访问\U密钥=nil,参数={}) @connection=Aws::SdbInterface.new(Aws\u access\u key\u id、Aws\u secret\u access\u key、参数) 结束 所以我怀疑Amazon web服务访问密钥/秘密访问密钥尚未设置或设置错误


您可能想深入研究代码,看看调用方法的位置以及可能导致问题的其他原因

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


因此,我禁用了aws sdk gem,一切正常。

我正在使用的访问密钥和机密实际上已成功用于另一个库,仅在我试图建立此简单记录连接的两行上方。所以,我知道这不是密钥和机密的问题。顺便说一句,你可以在这里找到最新的文档和资料,谷歌网站可能应该被删除: