Question

Je suis en train d'écrire un petit bijou qui fournit des aides pour les vues. Le code HTML que je veux insérer par l'aide est assez complexe que je préfère l'écrire dans un fichier _partial.html.erb. Comment puis-je obtenir le chemin de vue de la pierre inclure dans le load_path de l'application?

Note: le seul bijou que j'ai trouvé qui fait quelque chose comme ça est Devise. Lorsqu'une vue ne peut pas être trouvé, imprime Rails le chemin de charge qui (sur ma machine) ressemble à:

Missing partial sortable_nested_set/tree with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/jason/VirtualRestaurant3/app/views", "/home/jason/.rvm/gems/ruby-1.9.2-preview3/gems/devise-1.1.rc0/app/views"

Comment faire Devise?

Mon petit bijou: http://github.com/jrmurad/SortableNestedSet gem Devise: + http: //+github.com/plataformatec/devise

Était-ce utile?

La solution

Si vous mettez le répertoire « app » dans le répertoire de base de votre plugin, Rails ajouter app / vue sur le chemin de vue par défaut.

.
├── app
│   └── views
│       └── plugin_name
│           └── _my_partial.html.erb

Ensuite, vous pouvez rendre la méthode partielle d'aide de votre plugin avec:

render :partial => "plugin_name/my_partial"

Notez que Rails ne rend pas les vues disponibles par défaut dans l'environnement de test de plug-in. Pour les inclure y ajouter ce qui suit à l'essai / test_helper.rb:

ActionController::Base.prepend_view_path File.dirname(__FILE__) + "/../app/views"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top