2013-05-24 17 views
5

Ho un decoratore che restituisce una stringa o una raccolta.Rendering parziale da Draper Decorator

A mio avviso, voglio visualizzare il ritorno di questo metodo di decorazione.

class MyDecorator < Draper::Decorator 
    def stuff 
    if condition 
     'some string' 
    else 
     render model.some_collection 
    end 
    end 
end 

Ora a mio avviso voglio eseguire il rendering della stringa se è una stringa o eseguire il rendering della raccolta.

= my_object.stuff 

purtroppo non posso accedere al metodo render all'interno Draper::Decorator. Pensieri?

risposta

7

Da https://github.com/drapergem/draper#accessing-helpers:

normali Rails aiutanti sono ancora utili per un sacco di compiti. a condizione aiutante entrambe le guide e quelli definiti nella vostra applicazione è possibile accedere tramite il metodo h

Quindi, sostituire render con h.render e dovrebbe funzionare bene.

+0

Non ho ancora avuto l'opportunità di implementare quella soluzione, grazie per la risposta. Lo contrassegnerò come completo una volta verificato che funzioni. Non posso credere di averlo perso nel Leggimi ... – ardavis

2

è possibile includere il modulo Draper::LazyHelpers di Draper all'interno del decoratore per utilizzare lo ActionView::Helpers e il resto di ActionView come si ha sempre con le visualizzazioni.

Problemi correlati