Trouver tous les enregistrements qui ont une non nul champ?

Je suis en train de définir deux variables comme suit:

  1. @orders = Customer.find_all_by_order_date(nil)
  2. @nonorders = Customer.find_all_by_order_date(!nil)

La première fonctionne correctement, mais le second ne l'est pas. Comment puis-je trouver les clients dont order_date champs ne sont pas nulles?


@nonorders = @customer.orders.find(:all, :conditions => "@customer.orders.order_date IS NOT NULL")

me donne l'erreur suivante:

undefined method 'extract_options_from_args!' for ActiveRecord::Base:Class

J'ai essayé de changer les conditions, telles que @orders.order_date, @customer.order.order_date, etc. Quelle est la cause de cette erreur? Merci!!!!

Dans les Rails, généralement le nom de la classe du modèle est d'abord les lettres sont en majuscule, au singulier. Et la base de données nom de la table est généralement minuscules, au pluriel. Donc, il devrait être de la Clientèle.find(:all, :conditions => "les clients.la date n'EST PAS NULL") que Vous devriez vérifier sur cette question. Un pluriel nom du modèle de la place de l'habituel singulier (les Clients au lieu de Client) peut conduire à beaucoup de confusion comme vous construisez votre sw.
Le pluriel des clients était malheureusement une faute de frappe - je ne l'utilisation de Client dans mon système. Merci Larry!

OriginalL'auteur sscirrus | 2010-09-29