Я пытаюсь использовать скрепку с heroku и s3, но у меня есть много таблиц, которые можно связать с фотографиями, которые мы будем использовать: например, обзор.
Я пытаюсь отделить фотографию от обзора и загрузить ее по отдельности, но, поскольку я новичок в ruby, я думаю, что потерпел неудачу.
У меня установлен и поставлен гем 'aws-s3'.
Это ошибка, которую я получаю:
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
Gemfile
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