我一直在努力解决这个问题,尽管我已经搜索了一堆,但我仍然无法找到问题的答案。 我在heroku上有一个Rails站点。我允许用户创建帖子,我希望他们能够添加多个图片。 我正在使用带有carrierwave的Rails 4.2.1并且没有S3直接上传,everthing工作正常。
但是,我想实现直接上传到Amazon S3。 我试图实现Heroku自己的指南:https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails
这很有效。 表单看起来很棒,它就像一个魅力,文件(我仍然只是在一个atm)被上传到亚马逊,带有链接和一切。 但是,它不会显示在我的应用中。
为了让您知道会发生什么,这是我的控制台输出:
Started PATCH "/posts/47" for 127.0.0.1 at 2016-04-02 21:46:47 +0200
Processing by PostsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"***auth token***", "posts"=>{"image"=>"//myapp.s3.amazonaws.com/uploads/d886f0c3-f51c-48a6-8e00-30a0a278e298/image-that-i-have-uploaded.jpg", "remote_image_url"=>"", "image_cache"=>"", "remove_image"=>"0", "title"=>"test", "description_short"=>"testdescshort2", "description_long"=>"testdesclong2"}, "button"=>"", "id"=>"47"}
Post Load (1.1ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1 [["id", 47]]
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Post Load (0.1ms) SELECT "posts".* FROM "posts" WHERE "posts"."user_id" = ? AND "posts"."id" = ? LIMIT 1 [["user_id", 1], ["id", 47]]
(0.2ms) begin transaction
Post Load (0.2ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1 [["id", 47]]
SQL (1.8ms) UPDATE "posts" SET "image" = ?, "updated_at" = ? WHERE "posts"."id" = ? [["image", "73811_108472322553034_2478153_n.jpeg"], ["updated_at", "2016-04-02 19:46:48.005926"], ["id", 47]]
(0.9ms) commit transaction
Redirected to http://localhost:3000/posts/47
Completed 302 Found in 43ms (ActiveRecord: 4.5ms)
(我已经从中获取了真正的真实性令牌,因为我不确定我是否可以出于隐私原因分享它。)
如您所见,我为上传的图片创建了一个链接。 但是,它不会使用新图像加载帖子。 相反,它会加载已存在的图片。
当我创建一个新帖子时也是如此 - 然后,它只是将图像保存为零。
有人没有我能做的吗? 我确定我只是做了一些简单的错误,但我找不到它。
非常感谢您的帮助!!!!
答案 0 :(得分:0)