# Partial Vagabondo

**URL:** <https://www.ruby-forum.com/t/partial-vagabondo/79379>\
**Category:** IT\
**Created:** [December 14, 2006, 6:12pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379 "2006-12-14T18:12:23Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 14, 2006, 6:12pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/1 "2006-12-14T18:12:23Z")

</div>

Prima di perderci la testa, qualcuno mi sa dire come andare a pescare un  
partial che vive fuori da app/views con render :partial =\> a\_path ?

(si si lo so che è una schifezza e non lo dovrei fare e probabilmente se  
lo  
faccio ho sbagliato il design 🙂

ho già provato sia con ‘…/etc’ che con un path assoluto ma rails mi dà  
picche…

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 14, 2006, 7:22pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/2 "2006-12-14T19:22:31Z")

</div>

Un symlink magari? tanto, se già ti trovi ad avere partial in giro,  
forse un’altra schiffezza non cambia molto!  
Ma, per curiosità, come mai ti serve? E’ un partial usato in più  
applicazioni forse?  
chiaro scuro wrote:

```
 Prima di perderci la testa, qualcuno mi sa dire come andare a
 pescare un
 partial che vive fuori da app/views con render :partial => a_path ?
 (si si lo so che è una schifezza e non lo dovrei fare e
 probabilmente se lo
 faccio ho sbagliato il design :-)
 ho già provato sia con '../etc' che con un path assoluto ma rails
 mi dà 
 picche..
 _______________________________________________
 Ml mailing list
 [1]removed_email_address@domain.invalid
 [2]http://lists.ruby-it.org/mailman/listinfo/ml

```

–  
“Remember, always be yourself. Unless you suck.” - Joss Whedon

References

1. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
2. [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 14, 2006, 8:38pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/3 "2006-12-14T20:38:51Z")

</div>

On 12/14/06, david [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Un symlink magari? tanto, se già ti trovi ad avere partial in giro,

ecco, ora mi obblighi anche ad ammettere che sono su windows. alla  
vergogna  
non c’è mai fine.

> forse un’altra schiffezza non cambia molto!  
> Ma, per curiosità, come mai ti serve? E’ un partial usato in più  
> applicazioni forse?

sto lavorando su dei pezzi di codice riusabile che si portano dietro  
ognuno  
il loro model, controller, views in un alberello tutto loro. vivono  
sotto  
un’alberatura loro e non so come far credere temporaneamente a rails che  
quella sia ‘views’

insomma, sto volutamente andando contro l’opinone di rails… 🙂

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 15, 2006, 10:20am UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/4 "2006-12-15T10:20:35Z")

</div>

Chiaro Scuro wrote:

> Prima di perderci la testa, qualcuno mi sa dire come andare a pescare un  
> partial che vive fuori da app/views con render :partial =\> a\_path ?
> 
> (si si lo so che ï¿½ una schifezza e non lo dovrei fare e probabilmente se  
> lo  
> faccio ho sbagliato il design 🙂
> 
> ho giï¿½ provato sia con ‘…/etc’ che con un path assoluto ma rails mi dï¿½  
> picche…

Usa:  
render :file=\>“c:/dir/\_nome\_partial.rhtml”, :use\_full\_path =\> false

ciao  
Massimo

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 14, 2006, 8:48pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/5 "2006-12-14T20:48:54Z")

</div>

LOL!

🙂

Sospettavo che eri una situazione del genere ed è - direi - uno dei  
punti deboli di Rails, no? Almeno a leggere le varie comparazioni con  
Django, salta spesso fuori quant’è più facile riutilizzare pezzi di un  
app con il secondo.

E non è che puoi fare un plugin con un generator che ti genera delle  
“istanze” del tuo alberello per ogni contesto dove ti serve? Immagino di  
no, non se hai un model che parla con un db diverso da quello  
dell’applicazione corrente… Hmm. Ma allora come si fa?

E se facessi il tuo alberello come un’app a sé stante e poi fai delle  
chiamate REST direttamente là sopra? Devi per forza condividere state e  
scope tra l’applicazione “vera” e quella dei pezzi riutilizzabili?  
Potresti chiamare un URLo che restituisce l’html del partial e poi fare  
un render :string (tipo)?

Boh. Solo qualche idea…

chiaro scuro wrote:

> > forse un’altra schiffezza non cambia molto!
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
“Remember, always be yourself. Unless you suck.” - Joss Whedon

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 15, 2006, 2:42pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/6 "2006-12-15T14:42:46Z")

</div>

mÃ² lo provo, grazie a tutti per i consigli. spero che il weekend mi  
porti  
consiglio.  
proverÃ² anche a scavare ei rails engines e productize per capire come  
fanno  
loro.

On 12/15/06, Massimo [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> picche…
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
Chiaroscuro

: : i’m a miner : : | [therubymine.com](http://therubymine.com)

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 15, 2006, 7:07pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/7 "2006-12-15T19:07:40Z")

</div>

dunque, il consiglio di david di rendere queste ‘componenti’ un servizio  
era  
un pÃ² overkill per me ora… e usare render :file non andava, perchÃ¨  
avevo  
diversi partial da caricare

scavando in rete ho trovato sotto ‘productize’ questa soluzione… da me  
un  
pÃ² hackata, da mettere sotto lib e da includere da environments.rb…

FURTHER\_VIEWS\_ROOT = File.join RAILS\_ROOT, ‘app’, ‘elements’

module ActionView  
class Base  
private  
def full\_template\_path template\_path, extension  
element\_path = File.join FURTHER\_VIEWS\_ROOT,  
“#{template\_path}.#{extension}”

```
    if File.exist? element_path
      element_path
    else #standard path
      "#{@base_path}/#{template_path}.#{extension}"
    end
  end

```

end  
end

---

<div class="post-metadata">

**Author:** ![chiaroscuro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c5a1d2/32.png) [@chiaroscuro](https://www.ruby-forum.com/u/chiaroscuro)\
**Post date:** [December 15, 2006, 7:15pm UTC](https://www.ruby-forum.com/t/partial-vagabondo/79379/8 "2006-12-15T19:15:43Z")

</div>

Sembra una soluzione sensata anche se avrei forse dato la prioritÃ  
allo standard\_path piuttosto che al alternative\_path (element\_path  
nel  
codice)  
Cmq, pare che ActiveResource di cui si parla da un po’ (un anno)  
faccia anche quello che avevo in mente, cioÃ¨ fai l’app Rails e “a  
gratis” ottieni tutti i metodi come webservice REST. Leggevo stamane  
un articolo di Rick O. che spiega un po’ come funziona  
(funzionerÃ ). Consigliato:  
[1][http://weblog.techno-weenie.net/2006/12/13/taking-ares-out-for-a-te](http://weblog.techno-weenie.net/2006/12/13/taking-ares-out-for-a-te)  
st-drive  
Schiodo e vado a vedere se l’esclamazione communitaria di prima mi  
porti fortuna…  
ciÃ  
chiaro scuro wrote:

```
 dunque, il consiglio di david di rendere queste 'componenti' un
 servizio era
 un pÃ² overkill per me ora.. e usare render :file non andava, perchÃ¨
 avevo
 diversi partial da caricare
 scavando in rete ho trovato sotto 'productize' questa soluzione..
 da me un
 pÃ² hackata, da mettere sotto lib e da includere da
 environments.rb..
 FURTHER_VIEWS_ROOT = File.join RAILS_ROOT, 'app', 'elements'
 module ActionView
  class Base
    private
      def full_template_path template_path, extension
        element_path = File.join FURTHER_VIEWS_ROOT,
 "#{template_path}.#{extension}"
        if File.exist? element_path
          element_path
        else #standard path
          [2]"#{@base_path}/#{template_path}.#{extension}"
        end
      end
  end
 end
 On 12/15/06, chiaro scuro [3]<removed_email_address@domain.invalid> wrote:

 mÃ² lo provo, grazie a tutti per i consigli. spero che il weekend mi
 porti
 consiglio.
 proverÃ² anche a scavare ei rails engines e productize per capire
 come
 fanno loro.
  On 12/15/06, Massimo [4]<removed_email_address@domain.invalid> wrote:
 > Chiaro Scuro wrote:
 > > Prima di perderci la testa, qualcuno mi sa dire come andare a
 pescare
 > un
 > > partial che vive fuori da app/views con render :partial =>
 a_path ?
 > >
 > > (si si lo so che &#65533; una schifezza e non lo dovrei fare e
 probabilmente
 > se
 > > lo
 > > faccio ho sbagliato il design :-)
 > >
 > > ho gi&#65533; provato sia con '../etc' che con un path assoluto
 ma rails mi
 > d&#65533;
 > picche..
 >
 > Usa:
 > render :file=>"c:/dir/_nome_partial.rhtml", :use_full_path =>
 false
 >
 > ciao
 > Massimo
 >
_______________________________________________________________________

```

* * *

Ml mailing list  
[5]removed\_email\_address@domain.invalid  
[6][http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
“Remember, always be yourself. Unless you suck.” - Joss Whedon

References

1. 

[http://weblog.techno-weenie.net/2006/12/13/taking-ares-out-for-a-test-drive](http://weblog.techno-weenie.net/2006/12/13/taking-ares-out-for-a-test-drive)  
2. mailto:/#{@base\_path}/#{template\_path}.#{extension}  
3. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
4. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
5. [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
6. [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)
