Desidero essere in grado di fornire agli utenti il controllo completo e modificare il layout. Voglio anche che siano in grado di includere quali plugin javascript desiderano. Pertanto, ho dovuto creare un'interfaccia per consentire loro di farlo.Utilizzo di stylesheet_link_tag e javascript_include_tag di Rails in Liquid Drop
Per esempio, il codice HTML di default si presenta come una versione più complicata di questo:
<head>
<title>{{site.name}}</title>
...
{{js_plugins.colorbox}} # this should return the necessary javascript and/or stylesheet tags
</head>
mio Liquid JsPlugins goccia è come questo:
class JsPluginsDrop < Liquid::Drop
include ActionView::Helpers::AssetTagHelper
...
def colorbox
javascript_include_tag "/path/to/js"
end
end
Quando eseguo le mie specifiche, però, ottengo questo errore (nota che vedi @drop["colorbox-1.3.15"]
quando il codice che ho fornito sopra agisce in modo diverso, tuttavia volevo semplificare il mio codice poiché non è questo il problema, è l'uso dello TagHelper
che è il problema):
Failures:
1) JsPluginsDrop colorbox-1.3.15 should return the correct script tags
Failure/Error: @drop["colorbox-1.3.15"].stylesheets.should include("/jquery-plugins/colorbox-1.3.15/example1/colorbox.css")
undefined local variable or method `config' for #<JsPluginsDrop:0xcbfab38>
# ./app/drops/js_plugins_drop.rb:22:in `stylesheets'
# ./spec/models/js_plugins_drop_spec.rb:11
Non mi sorprenderò se il problema è causato dal fatto che questo è separato dal mio ambiente Rails e il drop non ha accesso allo config
di Rails. Dal momento che voglio ancora poter usare questi metodi di convenienza e :cache => true
che danno, , come posso usare lo stylesheet_link_tag e javascript_include_tag da all'interno di una caduta, se è possibile a tutti?