# Aprire una nuova finestra del browser dal controller

**URL:** <https://www.ruby-forum.com/t/aprire-una-nuova-finestra-del-browser-dal-controller/182685>\
**Category:** IT\
**Created:** [February 1, 2010, 1:39pm UTC](https://www.ruby-forum.com/t/aprire-una-nuova-finestra-del-browser-dal-controller/182685 "2010-02-01T13:39:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [February 1, 2010, 1:39pm UTC](https://www.ruby-forum.com/t/aprire-una-nuova-finestra-del-browser-dal-controller/182685/1 "2010-02-01T13:39:05Z")

</div>

Salve a tutti.

Secondo voi si puo’ aprire una nuova finestra del browser dal  
controller?

Mi spiego meglio.

So che posso aprire un collegamento in una nuova finestra mettendo  
:popup =\> true in link\_to.

Ma questo si fa nella view.

Invece io dovrei farlo dal controller.

In pratica se si verifica una certa condizione il controller dovrebbe  
aprire una nuova finestra e poi dovrebbe continuare a fare quello che  
deve fare nella finestra originaria.

Ogni suggerimento Ã¨ bene accetto.

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [February 1, 2010, 2:40pm UTC](https://www.ruby-forum.com/t/aprire-una-nuova-finestra-del-browser-dal-controller/182685/2 "2010-02-01T14:40:08Z")

</div>

Il 01 febbraio 2010 13.39, Sam P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Ma questo si fa nella view.
> 
> Invece io dovrei farlo dal controller.
> 
> In pratica se si verifica una certa condizione il controller dovrebbe  
> aprire una nuova finestra e poi dovrebbe continuare a fare quello che  
> deve fare nella finestra originaria.
> 
> Ogni suggerimento è bene accetto.

Dovrebbe essere sufficiente far ricevere al browser una cosa tipo:

Credo però ci sia un po’ di confusione: chi fa il render della  
response (scusa itanglese, ma i termini sono quelli) è la view; lo fa  
utilizzando i dati che riceve dal controller, quindi nel controller  
potresti scrivere:

def nome\_dell\_action  
…  
@apri\_il\_popup\_che\_sai\_tu = (una certa condizione che dà true o false)  
end

la view conterrà quindi:

\<% if @apri\_il\_popup\_che\_sai\_tu %\>  
\<%= helper\_che\_mostra\_il\_popup opzioni\_per\_l\_helper %\>  
\<% end %\>

Se questa cosa deve avvenire in tutte le view (o comunque in molte),  
puoi valutare se inserire questo pezzo nel layout anziché nella view.

Spero di essere stato d’aiuto; se hai altri dubbi, chiedi pure.

pietro

---

<div class="post-metadata">

**Author:** ![sdpurtill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/77aa72/32.png) [@sdpurtill](https://www.ruby-forum.com/u/sdpurtill)\
**Post date:** [February 1, 2010, 3:26pm UTC](https://www.ruby-forum.com/t/aprire-una-nuova-finestra-del-browser-dal-controller/182685/3 "2010-02-01T15:26:58Z")

</div>

On 01/02/2010 14:39, Pietro G. wrote:

> Se questa cosa deve avvenire in tutte le view (o comunque in molte),  
> puoi valutare se inserire questo pezzo nel layout anziché nella view.

aggiungerei che per non incasinare il layout, se devi ripeterlo solo in  
alcune parti, a quel punto sarebbe meglio mettere il codice in un  
helper, qualcosa tipo:

\<%= show\_popup(eventuali\_argomenti) if @valore\_bool %\>

ciao,  
A.
