Domanda

Sto scrivendo una gemma che prevede aiutanti per le viste. Il codice HTML voglio inserire tramite l'helper è abbastanza complessa che io preferirei scrivere in un file _partial.html.erb. Come faccio ad avere vista il percorso del gioiello includere nel load_path dell'applicazione?

Nota: l'unica gemma che ho trovato che fa qualcosa di simile è Devise. Quando un punto di vista non può essere trovato, Rails stampa il percorso di carico, che (sulla mia macchina) appare come:

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"

Come Devise fare?

La mia gemma: http://github.com/jrmurad/SortableNestedSet gemma Devise: + http: //+github.com/plataformatec/devise

È stato utile?

Soluzione

Se si mette la directory 'app' nella directory base del vostro plugin, Rails aggiungerà app / vista sul percorso di visualizzazione di default.

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

Poi si può rendere il parziale dal metodo di supporto del plugin con:

render :partial => "plugin_name/my_partial"

Si noti che Rails non rende il punto di vista disponibile per impostazione predefinita in ambiente di test plugin. Includerli là aggiungere il seguente al test / test_helper.rb:

ActionController::Base.prepend_view_path File.dirname(__FILE__) + "/../app/views"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top