Aggiungete nella vostra pagina il div che volete mostrare
<div id="thickbox_win" style="display:none">Some Text</div>
ora posizionate da qualche parte il link per mostrare la finestra modale
<%= link_to "SHOW", '#', :onclick => "thickbox_win_show()" %>
e aggiungete in application.js il corpo della funzione
function thickbox_win_show(){
tb_show('Show Thickbox window', '#TB_inline?height=300&width=500&inlineId=thickbox_win','','')
}
questo non fa altro che richiamare la funzione tb_show inclusa nel file thicbox.js, la quale mostra il div thickbox_win.
Ora all'interno del div thickbox_win ho aggiunto un form che chiama la create del controller containers, ad esempio:
<div id="thickbox_win" style="display:none">
<% remote_form_for(:container, :url => {:controller => :containers, :action => :create }, :html => { :method => :post } ) do |f| %>
<%= f.text_area :description, :class => "mceEditor" %>
<%= f.submit "New" %>
</div>
Perfetto, nella finestra modale vedo la mia textarea in stile WYSIWYG grazie all'aiuto di TinyMCE, ma quando eseguo il submit del form, nell'hash passato al controller il campo :description è vuoto.
Per aggirare il problema ho dovuto forzare la copia del testo modificato con TinyMCE usando questo metodo
tinyMCE.triggerSave(true,true)
Il form modificato è il seguente
<% remote_form_for(:container, :url => {:controller => :containers, :action => :create },
:before => "tinyMCE.triggerSave(true,true)",
:html => { :method => :post } ) do |f| %>
Ora funzionerà tutto alla grande :)






