【问题标题】:Rails.root being overwritten by Amazon AWS-SDK gem?Rails.root 被 Amazon AWS-SDK gem 覆盖?
【发布时间】:2013-10-23 21:46:57
【问题描述】:

我看到了这个错误:

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

我的控制器中对应的行:

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

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

现在似乎当我调用“Rails”时,应用程序认为我指的是 AWS 类方法。

我不知道我是怎么让系统跳闸的。

【问题讨论】:

    标签: ruby-on-rails ruby amazon-web-services amazon-s3 rubygems


    【解决方案1】:

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

    【讨论】:

    • 我试过了,但没用。我摆脱了 include AWS 行以删除命名空间并使用 AWS::S3::FOO 引用 AWS 类方法,它可以工作。
    【解决方案2】:

    我不知道为什么我把所有东西都搞砸了——但是如果我删除了控制器顶部的包含:

    #include AWS
    

    然后我直接将这些方法称为:

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

    它工作正常。我还是想知道我做错了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 2013-02-19
      相关资源
      最近更新 更多