J'ai un contrôleur qui cherche un ensemble de contacts à partir de la table de contacts. il semble actuellement comme ceci:Comment filtrer ou trouver un modèle basé sur une méthode dans ce modèle?
@contacts = @campaign.contacts.find(:all, :order => "date_entered ASC")
La méthode dans le contact.rb (Model) est la suivante:
def status
return if statuses.empty?
a= statuses.find(:last).status << ' (' << statuses.find(:last).created_at.to_s(:long) << ')'
return a
end
Pour la plupart, s'il y a une valeur dans le « statut », je ne plus vouloir l'afficher dans la vue.
À l'heure actuelle, l'état est polymorphe. Cela pourrait avoir été une idée stupide, mais je voulais le concept de statut à appliquer à différents modèles:
class Status < ActiveRecord::Base
attr_accessible :statusable_id, :statusable_type, :status
belongs_to :statusable, :polymorphic => true
end
# == Schema Information
#
# Table name: statuses
#
# id :integer not null, primary key
# statusable_id :integer
# statusable_type :string(255)
# status :string(255)
# created_at :datetime
# updated_at :datetime
#
Je suppose que si je peux ajouter cette condition à l'instance de @contacts, qui prendrait en charge il. Mais je ne sais pas comment écrire cette condition dans le contrôleur sur la méthode .find (si c'est la bonne façon de le faire).
merci.
Salut, mais qu'est-ce que je fais en tant que condition? Je ne suis pas sûr que je resterai has_many ... Je * pense * cela me permettra de tracer tous les changements que le statut change ... mais pas sûr. Je pensais aussi à rendre plusieurs modèles tous statutables via polymorphique ... plutôt que d'avoir un attribut séparé. Mais ce serait beaucoup plus simple si je le faisais. – Angela