红宝石回形针到s3错误

问题描述

我正在尝试在heroku和s3上使用回形针,但是我有很多可以与照片关联的表,例如,我们将使用:review。 我正在尝试将照片与评论分开,然后分别上传,但是由于我是红宝石的新手,所以我认为我失败了。 我已经安装并捆绑了“ aws-s3 \” gem。 这是我得到的错误:
LoadError in ReviewsController#create

no such file to load -- aws/s3 (You may need to install the aws-s3 gem)
Rails.root: C:/www/devise

Application Trace | Framework Trace | Full Trace
app/controllers/reviews_controller.rb:56:in `new\'
app/controllers/reviews_controller.rb:56:in `block in create\'
app/controllers/reviews_controller.rb:54:in `create\'
app/controllers/redirect_back.rb:23:in `store_location\'
This error occurred while loading the following files:
   aws/s3
照片型号:
class Photo < ActiveRecord::Base
        belongs_to :user
        belongs_to :shop
        belongs_to :baristum
        belongs_to :review

      #paperclip
      has_attached_file :photo,:styles => {
           :thumb=> \"100x100#\",:small  => \"400x400>\",:original => \"800x800\" },:storage => :s3,:s3_credentials => \"#{RAILS_ROOT}/config/s3.yml\",:path => \"/:style/:id/:filename\"

    end
照片模式:
t.string   \"file_name\"
    t.string   \"content_type\"
    t.integer  \"file_size\"
    t.integer  \"user_id\"
    t.integer  \"barista_id\"
    t.integer  \"review_id\"
    t.integer  \"shop_id\"
    t.datetime \"created_at\"
    t.datetime \"updated_at\"
审核控制器:
def create
    #add the current user to the review hash,from the session var.
    params[:review][:user_id] = current_user.id

    #move the photo to another var,so I can remove it from the review insert
    @photoUpload = params[:review][:photo]
    params[:review].delete(\"photo\")

    @review = Review.new(params[:review])

    respond_to do |format|
      if @review.save
        @photo = Photo.new(:photo => @photoUpload,:review_id => @review.id)
        @photo.save

        format.html { redirect_to(@review,:notice => \'Review was successfully created.\') }
        format.xml  { render :xml => @review,:status => :created,:location => @review }
      else
        @shopList = Shop.find(:all)
        format.html { render :action => \"new\" }
        format.xml  { render :xml => @review.errors,:status => :unprocessable_entity }
      end
    end
  end
宝石文件
source \'http://rubygems.org\'

gem \'pg\'
gem \'rake\',\'~> 0.8.7\'
gem \'rails\',\'3.0.5\'
#gem \'sqlite3-ruby\',:require => \'sqlite3\'
gem \'devise\',:git => \'git://github.com/plataformatec/devise\',:branch => \'master\'
gem \'omniauth\',\'0.2.0\'
gem \'paperclip\'
#gem \'RMagick\'
gem \"simple_form\",\"~> 1.2.2\"
gem \'twitter_oauth\',\'0.4.3\'
gem \"rest-client\",\"1.6.1\",:require => \"restclient\"
gem \"sluggable\"
gem \'gmaps4rails\'
gem \'exception_notification\',:require => \'exception_notifier\'
gem \'yaml_db\'
#gem \'mysql\'
gem \'aws-s3\'


#gem \'carrierwave\'
#gem \'fog\' #amazon s3
#gem \'nokogiri\'

group :development,:test do
 gem \'rspec-rails\'
 gem \'fixjour\'
end
    

解决方法

        当您在gem文件中包含\'aws-s3 \'gem时,请记住添加require语句。
gem \'aws-s3\',:require => \'aws/s3\'
    ,        当前版本的Paperclip使用
aws-sdk
宝石,而不是
aws-s3
宝石。 尝试运行该gem的最新版本,并与支持您的Rails堆栈的Paperclip的最新版本(适用于Rails 2.3的Paperclip 2.x或适用于Rails 3+的Paperclip 3.x)结合使用。     ,        看起来您需要在照片架构中包含以下字段。
  t.string :file_file_name
  t.string :file_content_type
  t.integer :file_file_size
  t.datetime :file_updated_at
运行此命令将生成一个迁移,供您执行
  #this convention: rails generate paperclip [model] [attachmentname]
  rails generate paperclip photo file
对于回形针,您必须具有遵循此约定命名的表列才能使用它们:\'attachmentname \'_ file_name,\'attachmentname \'_ content_type等...在其中调用Photo模型的has_attachment \ “文件\”。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...