尝试使用Rails ActiveStorage和Amazon aws s3直接上传时出现控制台错误

Liz*_*Liz 9 ruby-on-rails amazon-s3

我正在尝试使用ActiveStorage和aws s3替换带有图像上传的折旧(对于Rails 5.2)回形针.我正在使用指南和GoRails剧集,但遇到了我无法解析的控制台错误.在我的表单上看起来一切都很好,但是当我去提交时,我会在我的控制台中看到它:

activestorage.self-6e8d967adecc8b2a7259df0f51ef5b6f171c33267c7d149a474beccd90c68697.js?body=1:1 POST http://localhost:3000/rails/active_storage/direct_uploads 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)

我在blogs#new_ 上有这个form.html.erb:

<div class="form-group">
  <%= f.label "Picture" %>
  <%= f.file_field :image, direct_upload: true %>
</div>
Run Code Online (Sandbox Code Playgroud)

我把它放在我的模型中:

has_one_attached :image
Run Code Online (Sandbox Code Playgroud)

我有:image我的参数

def blog_params
  params.require(:blog).permit(:title, :teaser, :body, :user_id, :tag_list, :link_text, :link_filename, :pillars_id, :image)
end
Run Code Online (Sandbox Code Playgroud)

我把它添加到我的storage.yml:

Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
  service: S3
  access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
  secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
  region: us-west-1
  bucket: nameofbucket
Run Code Online (Sandbox Code Playgroud)

这在我的开发环境中:

config.active_storage.service = :amazon
Run Code Online (Sandbox Code Playgroud)

我在上面链接的RubyOnRails指南中包含了javascript/css.有谁知道这个错误来自哪里?我对调试控制台错误不太熟悉,所以任何信息或智慧都值得赞赏.

附加信息

这是我的Rails控制台中发生的错误:

LoadError - Unable to autoload constant ActiveStorage::Blob::Analyzable, expected /Users/lizbayardelle/.rvm/gems/ruby-2.3.3/gems/activestorage-5.2.0/app/models/active_storage/blob/analyzable.rb to define it:

::1 - - [12/Jul/2018:13:56:05 PDT] "POST /rails/active_storage/direct_uploads HTTP/1.1" 500 7784
http://localhost:3000/blogs/new -> /rails/active_storage/direct_uploads
Run Code Online (Sandbox Code Playgroud)

其他说明

当我尝试创建没有图像的博客时,我收到此错误:

undefined method `[]=' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)