Ottimo mi hai risposto anche ad un’altra domanda che non avevo posto per
paura di RTFM a pioggia sulle associazioni polimorfiche ![]()
Me stanno a balla l’occhi quindi mo smorzo, domani mattina ci provo e te
faccio
sapé!
Bella!
Jeko
-----Messaggio originale-----
Da: [email protected] [mailto:[email protected]]
Per conto di Luca M.
Inviato: martedì 20 giugno 2006 20.03
A: ruby-it
Oggetto: Re: [ruby-it] variabili e nomi delle classi
Stefano G. wrote:
Scenario: ho la mia classe Attachment che è in has_and_belongs_to_many con 2 o piu classi (nel mio caso Project e Visit)
…
def create
@foreignkey = params[:foreignkey]
@referrer = params[:referrer]
@oggetto = case @referrer
when ‘Project’ then Project.find(@foreignkey)
when ‘Visit’ then Visit.find(@foreignkey)
else nil
end
Potresti fare cosi:
@oggetto = Object.const_get( params[:referrer] ).new
Poi, se sei su Rails 1.1, ci sono le polymorphic associations che
consentono di associare ad un modello (e.g. Attachment) N diversi
modelli.
nel tuo caso devi avere in Attachment i campi referrer_id e
referrer_type poi:
class Project < ActiveRecord::Base
has_many :attachments, :as => :referrer
end
class Visit < ActiveRecord::Base
has_many :attachments, :as => :referrer
end
class Attachment < ActiveRecord::Base
belongs_to :referrer, :polymorphic => true
end
in questo modo puoi riferirti al referrer di un attachment come
attachment.referrer e questo sara’ un oggetto del tipo giusto.
per esempio se fai:
progetto = Project.new
attach = Attachment.new
puoi attaccare l’attach al progetto cosi:
attach.referrer = progetto
oppure
progetto.attachments << attach
senza doverti preoccupare di impostare il tipo, questo ti puo aiutare
soprattutto per le query.
ciao,
Luca M.
–
Web: http://spazidigitali.com
Email: mailto://[email protected]
Skype: callto://l.mearelli
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml