2017-02-02 5 views
-1

私は、AWS-SDKの宝石とクリップ/ペーパークリップ、AWSの宝石の異なるバージョンを試してみましたが、このエラーはなくならない。レール5は、

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の抜粋で、コメントからの質問:

#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): 

私は私のアプリ/モデル/記事を追加します。属性の変更時にエラーのためのrb、e。 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 
+0

Gemfileでどのように宝石を宣言していますか?初期化されていない定数は、宝石がロードされていないためです。私はBundlerが私が期待していなかった私の宝石で何かをやったので、それが起こることがあるときに気付いた。 – pjmorse

+0

私のチケット@pjmorseを更新しました – Leder

+0

OK、これはGemfileではありません。 – pjmorse

答えて

0

私は問題を解決した変更を知りません。しかし、paperclip-aws gemは削除されました。これは4年以来アクティブではなく、paperclip v2 gemにはaws-sdkサポートが含まれているからです。次に、両方の変数を追加しました。

:bucket => ENV['AWS_BUCKET'], 
:s3_bucket => ENV['AWS_BUCKET'], 
関連する問題