Skinny Controller, Fat Model afferma che la logica dovrebbe essere implementata nel modello, poiché consente un migliore riutilizzo del codice. Il ragionamento è che mentre un controllore è legato a un'azione di un singolo utente (o un gruppo di azioni dell'utente), il modello viene utilizzato attraverso l'applicazione, quindi inserire il codice consente di riutilizzarlo ovunque utilizziamo il modulo.
Questo, tuttavia, si applica solo al codice che opera sui dati del modello. Nel tuo caso, vuoi verificare l'esistenza di un cookie. I cookie non sono correlati a un modello specifico - fanno parte della richiesta HTTP - quindi il posto naturale per loro è il controller, dal momento che è compito del controllore ricevere l'azione dell'utente e decidere come rispondere ad esso.
Ancora: questo è il codice che vorrete riusare (presumo che vogliate eseguire quel controllo per molte pagine), quindi non lo legherei ad un controller specifico - deve essere condiviso tra tutti i controller. In RoR, ad esempio, lo inserirai in ApplicationController
- la classe base per tutti i controller utilizzati nella tua applicazione. Non so quale framework stai usando, o se stai ruotando da solo, ma dovresti cercare qualcosa di simile.