【问题标题】:Rails 5 on heroku with paperclip and aws and different gem versions带有回形针和aws以及不同gem版本的heroku上的Rails 5
【发布时间】:2017-02-02 14:02:48
【问题描述】:

我尝试了不同版本的 aws-sdk gem 和 paperclip/paperclip-aws gem,但这个错误不会消失:

ActionView::Template::Error (uninitialized constant Paperclip::Storage::Aws::VERSION):

和:

 Extracted source (around line #25):

  <td><b><%= article.title %></b></td>
  <td><%= simple_format h(article.text) %></td>
  <td><i><%= link_to article.attachment_file_name, article.attachment.url(:original, false) %></i></td>
 </tr>

这是任何地方的库错误吗?

这是我的 Gemfile 摘录,来自 cmets 的问题:

#Paperclip
gem 'paperclip', git: 'git://github.com/thoughtbot/paperclip.git'

gem 'aws-sdk', '~> 2.0'
gem 'aws-sdk-resources', '~> 2'

gem 'paperclip-aws'

更新: 我必须像db:reset 这样在heroku 生产中清理数据库,并在本地机器上删除sqlite 文件。然后同样的Aws::VERSION 错误来自我的 ArticlesController:

 Extracted source (around line #24):

def create
  @article = Article.new(article_params)

  if @article.save
    redirect_to @article

参数如下:

Parameters:

{"utf8"=>"✓", "authenticity_token"=>"FpE3KDmkv6ofsavuUiAynp9H9o31w+EYAh/ONQfuTHLDl+7EjfucF4kxn+     XHzwHJsdOMrPJ+7Sm8oVEg5PzxqA==",
 "article"=>
  {"title"=>"test7",
   "text"=>"",
   "attachment"=>
    #<ActionDispatch::Http::UploadedFile:0x9653310
     @content_type="text/plain",
     @headers="Content-Disposition: form-data; name=\"article[attachment]\"; filename=\"HRNG.txt\"\r\nContent-Type: text/plain\r\n",
     @original_filename="HRNG.txt",
     @tempfile=#<File:C:/Users/Lap127/AppData/Local/Temp/RackMultipart20170202-9024-2uphpe.txt>>},
 "commit"=>"Create Article"}

现在的错误信息:

NameError (uninitialized constant Paperclip::Storage::Aws::VERSION):

我为更改属性时的错误更改添加了我的 app/models/article.rb,例如。 G。 :bucket:s3_bucket

class Article < ApplicationRecord
  has_many :comments, dependent: :destroy
  validates :title, presence: true,
                length: { minimum: 5 }
  has_attached_file :attachment,
            :path => 'assets/:class/:attachment/:id/:style/:filename',
            :storage => :s3,
            :s3_bucket => ENV['AWS_BUCKET'],
            :s3_permissions => 'public_read_write',
            :s3_protocol => 'https',
            :s3_host_name => 'eu-central-1.amazonaws.com',
            :s3_host_alias => 'eu-central-1.amazonaws.com',
            :s3_region => ENV['AWS_REGION'],
            :s3_credentials => { :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
                                 :secret_access_key => ENV['AWS_SECRET_KEY_ID'],
                                 :endpoint => 'eu-central-1.amazonaws.com' }

  # Explicitly do not validate
  do_not_validate_attachment_file_type :attachment
  #validates_attachment :attachment, content_type: { content_type: 'application/x-java-archive'}, size: { in: 0..10.megabytes }
end

【问题讨论】:

  • 如何在 Gemfile 中声明 gem?有时未初始化的常量是因为 gem 没有加载;我发现发生这种情况可能是因为 Bundler 对我的 gem 做了一些我没想到的事情。
  • 更新了我的票@pjmorse
  • 好的,是的,这不是 Gemfile。
  • 图书馆的回形针/-aws 有人适合吗?
  • 我有一个简单的解决方案,但可能不会在这里给出答案。您可以在另一个问题paperclip git answer 中找到它

标签: ruby-on-rails amazon-web-services heroku


【解决方案1】:

我不知道哪个更改解决了这个问题。但是我删除了回形针-aws gem,因为它自 4 年以来一直不活跃,并且回形针 v2 gem 包括 aws-sdk 支持。然后我添加了两个变量:

:bucket => ENV['AWS_BUCKET'],
:s3_bucket => ENV['AWS_BUCKET'],

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2017-06-24
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多