2017-10-04 1 views

Répondre

2

Mettre en place un cadre dans votre classe de document:

##document.rb 
scope :named_documents, -> { where.not(name: nil).order(:name) } 

Ensuite, vous pouvez l'utiliser comme ceci:

<%= form.collection_select :parent_id, Document.named_documents, :id, :name, {:include_blank => ''}, {:class => 'form-control'} %> 
+0

Merci. J'avais besoin de le modifier un peu parce que c'était une chaîne vide. C'est ce que j'ai fini avec ça fonctionne. scope: named_documents, -> {where ("name <> ''") .order (: nom)} – spacerobot

+0

Ne pensez-vous pas que ceci devrait être corrigé en ajoutant une contrainte NOT NULL et une validation dans le modèle? – max

+0

Non J'utilise acts_as_tree et jstree pour construire une arborescence d'un gestionnaire de fichiers. Parfois, le champ sera vide s'il ne s'agit pas d'un en-tête de catégorie. – spacerobot

0

vous pouvez faire

<%= form.collection_select :parent_id, Document.named_documents.reject{|d| d.name.nil?}.order(:name), :id, :name, 
    {:include_blank => ''}, {:class => 'form-control'} %> 

Je mis à jour il.

+0

Merci. J'obtiens une erreur "reject" de la méthode non définie. – spacerobot

+0

Je l'ai mis à jour pour réellement itérer la collection. –