2011-09-14 9 views

Respuesta

6

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"

+0

Este enfoque no funciona con la cartera de activos de Rails 3.1. –

+0

¿por qué no? gem 'tiny_mce' supprots rails 3.1 –

+0

La tiny_mce gem documenta que ya no se mantiene y que 3.1 no es explícitamente compatible. –

1

Parece que tinymce es definitivamente compatible con los rieles 3.1. Aquí está el enlace
http://rubygems.org/gems/tinymce-rails

Todo lo que tiene que hacer es añadir lo siguiente a su Gemfile

gem 'tinymce-rails' 

Tiene las siguientes opciones para añadir a application.js dependiendo de si desea utilizar o jQuery no

//= require tinymce-jquery 
//= require tinymce 

Personalmente me eligieron jQuery por lo que añade esta línea al archivo js.coffee correspondiente a mi controlador/vista

tinyMCE.init 
    mode: 'textareas', 
    theme: 'advanced' 

Si no desea utilizar jQuery se puede simplemente añadir esta secuencia de comandos a la vista

<script type="text/javascript"> 
    tinyMCE.init({ 
    mode: 'textareas', 
    theme: 'advanced' 
    }); 
</script> 
Cuestiones relacionadas