2013-01-11 10 views
9

Come includere le guide per visualizzare gli helper accessibili dal contesto di esecuzione della pipeline delle risorse?Come includere gli helper di ActionView nella pipeline delle risorse?

Un esempio di utilizzo potrebbe essere la generazione del markup per un modulo, utilizzando il metodo helper form_tag e renderlo disponibile a un modello Javascript (come manubri, jst, ecc.).

Io uso gemma handlebar_assets, ma questo dovrebbe applicarsi anche a qualsiasi modello erb o haml.

risposta

29

Creare un inititializer e comprendono gli aiutanti nel contesto delle attività di questo tipo:

Rails.application.assets.context_class.class_eval do 
    include ActionView::Helpers 
    include MyAppHelper 
    include Rails.application.routes.url_helpers 
end 

tratto da questo sprockets issue

+0

Anche questo ha funzionato per me quando ho voluto rendere un ERB personalizzato per stringa con 'template = ERB.new (html) template.result (vincolante)'. Senza questo non ero in grado di usare concat e altri semplici helper. – portforwardpodcast

+0

@brutuscat, puoi chiarire dove vuoi inserire questo codice? Grazie – jackerman09

+2

@ jackerman09 nessun problema: "Crea un inizializzatore", vedi più qui http://guides.rubyonrails.org/configuring.html#using-initializer-files – brutuscat

8

La risposta di cui sopra è ormai fuori moda. Come di rocchetti-rotaie 3, l'interfaccia appropriata è un blocco di configurazione, in questo modo:

Rails.application.config.assets.configure do |env| 
    env.context_class.class_eval do 
    # include SomeHelper 
    end 
end 

Questo blocco di configurazione deve ancora essere posti in un inizializzatore.

di riferimento: https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886

Problemi correlati