Мое приложение - refineryCMS, размещенное на сервере heroku. Мне нужно хранить изображения в магазине Postgres DB. У меня есть один драгоценный камень dragonfly-activerecord, но я не могу сохранить его в базе данных. Я пытался:
Настройте саму Dragonfly (обычно в config/initializers/dragonfly.rb
):
require 'dragonfly-activerecord/store'
Dragonfly.app.configure do
# ... your existing configuration here
datastore Dragonfly::ActiveRecord::Store.new
Нам нужно интегрировать этот драгоценный камень в refineryCMS. Если мы сможем хранить изображения в базе данных для cms, это будет большим подспорьем для такого хоста, как heroku.
3 ответа
Вот решение вместе с вилкой dragonfly-activerecord. Просто зайдите в config/initializers/refinery/images.rb
Вот код для этого. Сначала выполните шаги dragonfly-activerecord
В Gemfile:
gem 'dragonfly-activerecord', git: "git: //github.com/arpit-clarion/dragonfly-activerecord.git"
и
bundle
rails generate migration add_dragonfly_storage
В файл миграции добавьте этот код
require 'dragonfly-activerecord/migration'
class AddDragonflyStorage < ActiveRecord::Migration
include Dragonfly::ActiveRecord::Migration
end
Запустите rake db:migrate
и добавьте этот код:
config/initializers/refinery/images.rb
# encoding: utf-8
require 'dragonfly-activerecord/store'
Refinery::Images.configure do |config|
#...... Your configuration ....
config.custom_backend_class = 'Dragonfly::ActiveRecord::Store'
config.custom_backend_opts = {}
#...... Your configuration ....
end
Это изменит всю структуру системных папок, установленную в базе данных. Никаких ведер не надо.
Имейте в виду, что эта система предназначена для тех приложений, в которых требуется хранить меньше изображений, поскольку она генерирует большие фрагменты в базе данных и преобразует изображения по запросу.
Почему бы вам просто не использовать Amazon S3 для хранения изображений? Он отлично работает с Heroku: http://www.refinerycms.com/guides/heroku
Потрясающие! Не могли бы вы написать это решение в качестве руководства в репозитории Refinery CMS? https://github.com/refinery/refinerycms/tree/master/doc/guides
Похожие вопросы
Новые вопросы
postgresql
PostgreSQL — это система управления реляционными базами данных (RDBMS) с открытым исходным кодом, доступная для всех основных платформ, включая Linux, UNIX, Windows и OS X. Задавая вопросы, указывайте свою версию Postgres. Обратитесь к dba.stackexchange.com для вопросов, касающихся администрирования или дополнительных функций.