# Definire costanti nel controller

**URL:** <https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460>\
**Category:** IT\
**Created:** [August 19, 2007, 3:50pm UTC](https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460 "2007-08-19T15:50:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lucea](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/ea5d25/32.png) [@Lucea](https://www.ruby-forum.com/u/Lucea)\
**Post date:** [August 19, 2007, 3:50pm UTC](https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460/1 "2007-08-19T15:50:27Z")

</div>

Salve a tutti!  
Vorrei che una costante definita in un controller fosse visibile in  
tutti i metodi di quel controller (e fin qui niente di impossibile) ma  
anche nelle viste ad associate ai metodi del controller stesso. Per  
fare questo ho definito:

class BohController \< ApplicationController

@COSTANTE = 1

def azione  
…  
end

end

Dove @COSTANTE può essere usata tranquillamente in tutte le action nel  
controller.  
Nelle viste invece questa costante non viene trovata e per poterla  
passare devo necessariamente ridefinirla in ogni action in questo  
modo:

def azione  
@cost\_da\_passare = @COSTANTE  
end

Sapete dirmi se è possibile fare quello che sto cercando di fare?  
Dove sbaglio?

Grazie a tutti  
Silvia

---

<div class="post-metadata">

**Author:** ![Lucea](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/ea5d25/32.png) [@Lucea](https://www.ruby-forum.com/u/Lucea)\
**Post date:** [August 19, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460/2 "2007-08-19T23:04:10Z")

</div>

Confusione di sintassi:  
COSTANTE = una costnte ruby  
@costante = una class var (visibile nella view)

Sceglie una delle due e sarai apposto.

---

<div class="post-metadata">

**Author:** ![Lucea](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/ea5d25/32.png) [@Lucea](https://www.ruby-forum.com/u/Lucea)\
**Post date:** [August 20, 2007, 8:14am UTC](https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460/3 "2007-08-20T08:14:48Z")

</div>

Ok. Ok. Ok. Mi trollo da solo: ho dette delle gran cazzate. Avevo  
bevuto. Scrivevo in piedi. Ero stanco.

Riprovo:  
@qualcosa = instance variable, visibile nelle view  
@@qualcosa = class variable, visibile pure (da evitare  
però)QUALCOSA = una costante e si dovrebbe vedere pure quello ma occorre il  
namespace giusto

class BohController \< ApplicationController  
COSTANTE = 1  
…  
…  
end

Nella view:

\<%= BohController::COSTANTE %\>

Chiedo scusa per la confusione.

---

<div class="post-metadata">

**Author:** ![Lucea](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/ea5d25/32.png) [@Lucea](https://www.ruby-forum.com/u/Lucea)\
**Post date:** [August 20, 2007, 11:44am UTC](https://www.ruby-forum.com/t/definire-costanti-nel-controller/112460/4 "2007-08-20T11:44:16Z")

</div>

Grazie mille! in effetti avevo provato anche definendo la costante  
senza la @ davanti ma non funzionava lo stesso perché quello che  
sbagliavo era \<%= BohController::COSTANTE %\>.  
ciao a tutti  
Silvia
