Как вы получаете http://github.com/galetahub/rails-ckeditor, чтобы вы могли загружать файлы изображений? Я не думаю, что буду использовать хранилище s3...
любая помощь будет оценена.
Как вы получаете http://github.com/galetahub/rails-ckeditor, чтобы вы могли загружать файлы изображений? Я не думаю, что буду использовать хранилище s3...
любая помощь будет оценена.
Да, вы можете. Я предполагаю, что у вас уже есть скрепка для S3. Таким образом, вы только редактируете picture.rb и attachement_file.rb в своем каталоге моделей (app/model/ckeditor/) и заменяете эти строки
has_attached_file :data,
:url => "/ckeditor_assets/attachments/:id/:filename",
:path => ":rails_root/public/ckeditor_assets/attachments/:id/:filename"
с вашей версией papeclip has_attached_file:
has_attached_file :data, :styles => { :content => '575>', :thumb => '80x80#' },
:storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :path => ":attachment/:id/:style.:extension",
:url => ":s3_domain_url"
Что это. Btw: это пример из Rails 3.
Я бы воспользовался README для упомянутого вами плагина rails-ckeditor. Если вам не нужен SWFUpload, вы можете просто интегрировать CKEditor и Paperclip, написав пользовательский загрузчик файлов и пользовательский файловый браузер и подключитесь их в редактор, указав URL-адреса и функции обратного вызова.
Всегда полезно иметь пример, автор сделал примерное приложение. К сожалению, в нем есть несколько ошибок. Рассмотрим следующие моменты, чтобы запустить его
измените следующие строки в config/environment.rb
config.gem 'paperclip', :version => '2.3.3'
config.gem 'ckeditor', :version => '3.4.1'
удалить файл index.html
публично
добавить корневой маршрут в config/routes.rb
map.root :controller => "pages"
Решение Rails 4.2.0:
Как вы получаете http://github.com/galetahub/rails-ckeditor, чтобы вы могли загружать файлы изображений?
Как и в CKEditor, вы можете вставлять существующие URL-адреса изображений, но для CKEditor и Paperclip для совместной работы, чтобы вы могли загружать изображения, вам понадобится ImageMagick. Насколько я понимаю, он обрабатывает загрузку данных изображения, создание ссылки на URL-адрес изображения для загруженных данных изображения и встраивание URL-адреса загруженных изображений.
Добавьте gem "ckeditor"
в свой Gemfile
затем запустите команду $ bundle install
.
Добавьте это в /app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require ckeditor/init <--------------- THIS
//= require_tree . <----------------------- ABOVE THIS
per: https://github.com/galetahub/ckeditor#how-to-generate-models-to-store-uploaded-files
Добавьте это в:
/config/routes.rb
Я положил его перед resources
, который использует его
mount Ckeditor::Engine => '/ckeditor'
Используя form_for "и установив модель" Article" с заголовком: string и text: text /app/views/articles/ _form.html.erb
<p>
<%= f.label :text %><br>
<%= f.cktext_area :text, rows: 10 %> # <-------- "cktext_area"
</p>
Использование simple_form_for"
<div class="form-group">
<%= f.input :body, :as => :ckeditor, input_html: {:ckeditor => {:toolbar => 'FULL'}}, class: "form-control" %>
</div>
per: https://richonrails.com/articles/getting-started-with-ckeditor
Добавьте gem "paperclip"
в свой Gemfile и $ bundle install
.
Затем запустите следующие две команды:
$ rails generate ckeditor:install --orm=active_record --backend=paperclip
и
$ rake db:migrate
Для macOS Sierra:
$ brew install imagemagick
Для других параметров установки ImageMagick: https://www.imagemagick.org/script/install-source.php
В дополнение к ответу Zaparka мне пришлось удалить # {Rails.root}, поскольку я получал унифицированную постоянную ошибку. SO вместо этого я помещаю "/config/s3.yml", и это сработало.
Используйте следующие вещи, которые он работает для меня, но у вас должна быть учетная запись на Amazon для хранения s3 и правильная конечная точка, на которую вы можете ссылаться
code.`gem 'aws-sdk', '~> 2'
gem 'aws-s3'
gem 'aws-sdk-v1'
gem 'paperclip'
class Ckeditor::Picture < Ckeditor::Asset
AWS_CONFIG = YAML.load(ERB.new(File.read("#{Rails.root}/config/aws.yml")).result)[Rails.env]
has_attached_file :data,
s3_credentials: {
access_key_id: AWS_CONFIG['access_key_id'],
secret_access_key: AWS_CONFIG['secret_access_key'],
bucket: AWS_CONFIG['bucket'],
},
s3_host_name: 's3.amazonaws.com',
:s3_endpoint => 's3.amazonaws.com',
storage: :s3,
s3_headers: { "Cache-Control" => "max-age=31557600" },
s3_protocol: "https",
bucket: AWS_CONFIG['bucket'],
url: ':s3_domain_url',
path: '/:class/:attachment/:id_partition/:style/:filename',
default_url: "/:class/:attachment/:id/:style/:basename.:extension",
default_style: "medium"
validates_attachment_size :data, :less_than => 2.megabytes
validates_attachment_presence :data
def url_content
url(:content)
end
end
`
Прокомментировать эту строку require "ckeditor/orm/active_record"
из /config/initializers
наконец, поместите эту строку в файл просмотра <%= f.cktext_area :body %>
.