=?iso-8859-1?q?come_si_f=E0=3F?=

Problemino:

Mi trovo nella condizione di dover tracciare i movimenti che un utente
fà sul mio portale da quando entra a quando esce.
Ho fatto un plugin che fà questo, ma non è come lo vorrei… il problema è che
in ogni metodo che voglio tracciare sono obbligato a richiamare una
funzione… ad esempio, ora
è:

class User < ActiveRecord::Base

acts_as_watched
 def self.login(uid, pwd)      ...

   self.save_watch    end        def self.logout
   ....      self.save_watch      end

end

ma così è uno schifo… io vorrei dichiarare qualcosa del tipo:

acts_as_watched :login, :logout

e gestire la chiamata alla mia funzione in maniera trasparente.
L’unico modo che mi viene in mente mentre stò scrivendo è quello di
utilizzare un callback, ma questo poi significa che se all’interno del
modello ridefinisco lo stesso callback vanifico tutto.
Vi viene in mente nulla? magari con un alias di un callback?

Ciao Giuliano,
Non sono un esperto di Ruby, ma leggendo la tua richiesta mi è venuto
in mente l’AOP
(Aspect-oriented programming - Wikipedia).
Una ricerca mirata ha generato il link:
http://wiki.rubygarden.org/Ruby/page/show/AspectOrientedRuby/NotesRoughDrafts
Mi pare che nell’articolo ci siano un paio di spunti interessanti.

Una successiva ricerca (Rails AOP) ha portato alla luce:
http://www.pixzone.com/blog/34/aop-in-ruby-on-rails/

Spero che la cosa possa tornare utile.

Saluti
Pietro

Il 12/07/06, Giuliano U.[email protected] ha scritto:

On Jul 12, 2006, at 1:18 PM, Giuliano U. wrote:

Problemino:

Mi trovo nella condizione di dover tracciare i movimenti che un
utente fà sul mio portale da quando entra a quando esce.
Ho fatto un plugin che fà questo, ma non è come lo vorrei… il
problema è che in ogni metodo che voglio tracciare sono obbligato a
richiamare una funzione… ad esempio, ora è:

[snip]

L’unico modo che mi viene in mente mentre stò scrivendo è quello di
utilizzare un callback, ma questo poi significa che se all’interno
del modello ridefinisco lo stesso callback vanifico tutto.
Vi viene in mente nulla? magari con un alias di un callback?

Quel che ti serve e’ qui:

http://api.rubyonrails.com/classes/ActiveRecord/Observer.html
http://api.rubyonrails.com/classes/ActionController/Caching/
Sweeping.html

Se hai “Rails Recipes” c’e’ un capitolo dedicato a questo tipo di
problema (#59, “Keeping track of who did what”)


Stefano C.
[email protected]

— Giuliano U. [email protected] ha
scritto:

Problemino:

Mi trovo nella condizione di dover tracciare i
movimenti che un utente fà sul mio portale da quando
entra a quando esce.
Ho fatto un plugin che fà questo, ma non è come lo
vorrei… il problema è che in ogni metodo che
voglio tracciare sono obbligato a richiamare una
funzione…

Non potresti farlo tramite un filter dichiarato in
ApplicationController?

Tipo, il tuo metodo acts_as genera al volo un metodo
#trace_user, e poi richiama before_filter :trace_user.
All’interno di quello effettui poi le operazioni
necessarie.

PS
scusate per la “sòla” di ieri :frowning:

Chiacchiera con i tuoi amici in tempo reale!
Yahoo Search - Ricerca nel Web | Motore di Ricerca

Giuliano U. wrote:

Problemino:

Mi trovo nella condizione di dover tracciare i movimenti che un utente fà sul mio portale da quando entra a quando esce.
Ho fatto un plugin che fà questo, ma non è come lo vorrei.[CUT]

scusami Giuliano sono iscritta alla ml di ruby ma a dire il vero non ho
ancora avuto modo di cominciare a studiarlo…
però volevo chiedere, quel che vuoi fare tu di solito non si fa con i
cookies?
ciao a tutti e scusate l’intromissione!
alcina