Rails.root being overwritten by Amazon AWS-SDK gem?



我看到此错误:

undefined method `root' for AWS::Rails:Module

我的控制器中的相应行:

directory_name = Rails.root.join('public', @curAdmin.name)

这一直很好,直到我最近将 aws-sdk gem 添加到我的应用程序中,以将静态文件和资产推送到我的 S3 存储桶。

现在看来,当我调用"Rails"时,应用程序认为我指的是AWS类方法。

我不知道我是如何使系统跳闸以执行此操作的。

如果您引用AWS命名空间中的Rails,则会发生这种情况。您应该能够通过在模块前面附加::来退出命名空间 - 即::Rails.root.join('public', @curAdmin.name)

我不知道

为什么我把所有东西都绊倒了 - 但如果我删除控制器顶部的包含:

#include AWS

然后我直接将此类方法称为:

s3 = AWS::S3.new
bucket = s3.buckets['my_bucket_here']

它工作正常。 我仍然想知道我做错了什么。

最新更新