5

Sono di fronte a strani problemi nel convalidare la presenza di un'associazione in una classe derivata.Convalida l'associazione nella classe figlio di un modello

Class Contact < ActiveRecord::Base 

    has_and_belongs_to_many :things 

end 

Class SubContact < Contact 

# validates_presence_of :things 
    validate :must_have_things 

    def must_have_things 
    if things.blank? 
     errors.add("Must select things") 
    end 
    end 

end 

In SubContact classe, sto cercando di convalidare presenza delle cose, ma niente sta funzionando. Ho provato entrambi i validatori personalizzati e integrati Come posso ottenere questo risultato?

+0

@alexanderbird in questione OP mai menzionato STI, quindi non penso che il collegamento sia utile –

+0

Il codice di esempio dell'OP non mostra STI? Immagino che se non ci fosse una colonna di tipo nella tabella dei contatti, allora non è STI ... – alexanderbird

+0

sì, non abbiamo nessuna colonna di tipo. –

risposta

3

add ha bisogno di un attributo. Prova a utilizzare:

errors.add(:base, "Must not be blank") 

In questo caso, è la classe base ma può anche essere qualsiasi altro attributo. Indicare il nome di un attributo della classe SubContract o :base.

+0

Non è necessario restituire vero o falso poiché stiamo aggiungendo un errore ma anche se lo facciamo ancora non funziona. –

+0

Ho modificato la mia versione. Controlla – mhaseeb

+0

No @mhaseeb questa cosa non funziona per risorse ereditate. –