Je veux trouver tous les contacts où la valeur de leur: relation has_one à: contact_status n'a pas de valeurComment utiliser la condition hash: sur un .find pour un nil? méthode Rails (relation has_one)
J'ai créé un alias_attribute :status, :status_contact
(que cela signifie nul?) Puis-je faire quelque chose du genre:
contacts = Contact.find(:all, :conditions => {:contact_status => nil }, :include => {:status_contact})
Je ne sais pas exactement comment ça fonctionne. Fondamentalement, je ne lui attribue aucune valeur, c'est juste une relation: has_one.
EDIT: On dirait des contacts devraient être une relation de belongs_to rendant ainsi le changement D'après les commentaires, il semble que les contacts devraient effectivement avoir une relation de belongs_to à status_contacts qui à son tour « has_one » avec contacts.
J'utilise Searchlogic pour créer named_scopes ... Je pense il résout le problème, quelqu'un de familier avec ça?
Cependant, l'utilisateur peut parfois lui attribuer une valeur. Je ne veux pas que ceux-ci viennent dans la trouvaille.
Actuellement obtenir cette erreur:
SQLite3 :: SQLException: " "près de: erreur de syntaxe:.. SELECT "contacts"" id" AS t0_r0, "contacts" "prenom" AS t0_r1, « contacts "." last_name "AS t0_r2," contacts "." titre "AS t0_r3," contacts "." téléphone "AS t0_r4," contacts "." fax "AS t0_r5," contacts "." email "AS t0_r6," contacts "." société "AS t0_r7," contacts "." created_at "AS t0 _r8," contacts "." updated_at "AS t0_r9," contacts "." campaign_id "AS t0_r10," contacts "." date_entrée "AS t0_ r11, "contacts". "Company_id" AS t0_r12, "contacts". "Id_adresse" AS t0_r13, "contacts". "Nom_fichier_vcard" AS t0_r14, "contacts". "Vcard_conten t_type "AS t0_r15," contacts "." vcard_file_size "AS t0_r16," contacts "." vcar d_updated_at "AS t0_r17," contacts "." direct "AS t0_r18," contacts "." sugarcrm "AS t0_r19," status_contacts " . "id" AS t1_r0, "status_contacts". "État" AS t1_r1, "status_contacts". "Contact_id" AS t1_r2, "status_contac ts". "Created_at" AS t1_r3, "status_contacts". "Updated_at" AS t1_r4 FROM " contacts » LEFT OUTER JOIN "état _contacts" ON status_contacts.contact_id = contacts.id OU (: status_contact.status = NULL)
Hmmm ... peut-être que je l'ai en arrière. Je n'ai pas de status_contact_id ... ma table status_contact a un contact_id .... et il semble fonctionner ... – Angela
contact has_one status_contact - cela signifie-t-il que celui qui n'a pas la clé étrangère? Et je teste la foreign_key de status_contact? – Angela
c'est ce que j'ai trouvé, on dirait que le belongs_to devrait avoir la clé étrangère? http://blog.hasmanythrough.com/2007/1/15/basic-rails-association-cardinality – Angela