Im utilizando tinymce con gem 'tiny_mce'
y carrierwave
para la carga de imágenes. Mi disposición para tinymce sigue:
$(function() {
tinyMCE.init({
mode: "textareas",
editor_deselector: "plain",
theme: "advanced",
plugins: "advimage,inlinepopups,save,autosave",
external_image_list_url: '#{image_list_admin_static_images_url}',
relative_urls: false,
theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect",
theme_advanced_buttons22: "",
theme_advanced_buttons3: "",
theme_advanced_toolbar_location : "top",
theme_advanced_blockformats: "p,h2,h3,h4"
})
}
La parte importante es image_list_admin_static_images_url
en mis rutas tengo:
resources :static_images do
get :image_list, :on => :collection
end
Método en StaticImagesController parece:
def image_list
@image_list = "var tinyMCEImageList = #{StaticImage.image_list.to_json}"
render :js => @image_list
end
Y en el método image_list ubicado en el modelo:
def self.image_list
all.map{ |im| [im.alt, im.image.url] }
end
Esta configuración funciona perfectamente para mí, por lo que necesita personalizarla para sus propias necesidades. Espero que esto te ayudará. TinyMCE es realmente agradable y poderoso editor wysiwyg.
Como chech
sugerido en la sección de comentarios, aquí es cómo se puede ajustar esta solución para su uso con active_admin
:
para usarlo en el interior de administración activa simplemente reemplazar la ruta para éste: match "admin/model_name/:id/js_image_list", :action => "js_image_list", :controller => "admin/model_name"
. Luego crea una acción llamada js_image_list
dentro del archivo de modelo de administrador activo. La configuración de tinyMCE.init es: external_image_list_url : "js_image_list"
Este enfoque no funciona con la cartera de activos de Rails 3.1. –
¿por qué no? gem 'tiny_mce' supprots rails 3.1 –
La tiny_mce gem documenta que ya no se mantiene y que 3.1 no es explícitamente compatible. –