Я попытался добавить редактор в свое приложение rails, используя amazons3 и paperclip, но im с ошибками. Если я не могу заставить это работать, какие другие редакторы будут доступны, которые будут работать? Вот ошибка, которую я получил ниже«Отсутствует обязательный параметр: bucket option» для Paperclip/S3/Ckeditor
ArgumentError in Ckeditor::PicturesController#create
missing required :bucket option
Extracted source (around line #218):
216
217
218
219
220
221
@bucket = @options[:bucket] || s3_credentials[:bucket]
@bucket = @bucket.call(self) if @bucket.respond_to?(:call)
@bucket or raise ArgumentError, "missing required :bucket option"
end
def s3_interface
Я не уверен, что делать, следуя этим шагам.
gem 'paperclip'
gem 'ckeditor'
затем в комплект
rails generate ckeditor:install --orm=active_record --backend=paperclip
реки мигрировали
mount Ckeditor::Engine => "/ckeditor"
добавил этот application.js
//= require ckeditor/init
добавила это к странице просмотра
<%= f.cktext_area :content, :class => "form-control" %>
Эти файлы создаются и их конфигурация
/Ckeditor/Picture.rb
class Ckeditor::Picture < Ckeditor::Asset
has_attached_file :data,
:url => ":s3_domain_url",
:path => "/:class/:attachment/:id_partition/:style/:filename",
:styles => { :content => '800>', :thumb => '118x100#' }
validates_attachment_presence :data
validates_attachment_size :data, :less_than => 2.megabytes
validates_attachment_content_type :data, :content_type => /\Aimage/
def url_content
url(:content)
end
end
/Ckeditor/attachment_file.rb
class Ckeditor::AttachmentFile < Ckeditor::Asset
has_attached_file :data,
:url => "/ckeditor_assets/attachments/:id/:filename",
:path => ":rails_root/public/ckeditor_assets/attachments/:id/:filename"
validates_attachment_presence :data
validates_attachment_size :data, :less_than => 100.megabytes
do_not_validate_attachment_file_type :data
def url_thumb
@url_thumb ||= Ckeditor::Utils.filethumb(filename)
end
end
/Ckeditor/asset.rb
class Ckeditor::Asset < ActiveRecord::Base
include Ckeditor::Orm::ActiveRecord::AssetBase
include Ckeditor::Backend::Paperclip
end
Я использую эти строки кода в development.rb
и production.rb
и у меня не было никаких проблем с скрепкой до с s3.
config.paperclip_defaults = {
:storage => :s3,
:s3_protocol => 'http',
:bucket => ENV['AWS_BUCKET'],
:s3_credentials => {
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
Это paperclip.rb
файл
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
Я не использовал это, но я получил его для работы с использованием другого метода. Проблема в том, что изображения загружаются, я проверял, но не показываю – JamesRocky
Только один раз. Но если вы находитесь в среде разработки, возможно, вы потеряли переменные при перезагрузке машины. Для тестирования попробуйте заменить ENV вашими учетными данными. (Только для теста, это не рекомендованная безопасность практика) –
Вы тестируете в герою или на местном уровне? –