2010-10-20 4 views
0

Est-il possible dans des rails à l'aide d'un filtre qui apparaît, après le point de vue (after_filter), pour recueillir les données qui est apparu à l'intérieur des méthodes de javascript_include_tag et stylesheet_link_tag?Rails after_filter obtenir le javascript et les valeurs stylesheet

par exemple:

---rails view starts 
javascript_include_tag 'file.js' 

---rails view is complete and after_filter runs 
@js_files = get_included_javascript_files_array 

Toutes les idées?

Répondre

1

Si suggère que si vous avez besoin de savoir quels sont les fichiers js sont inclus alors vous dites déjà rails fichiers à inclure, donc il suffit de créer quelque chose dans votre ApplicationController:

before_filter :setup_js_includes 

def setup_js_includes 
    @js_includes = [ 'file.js' ] 
end 

Alors à votre avis :

<%= javascript_include_tag @js_includes %> 

Je suppose que javascript_include_tag peut prendre un tableau, si elle ne peut pas alors vous devez itérer à l'aide @js_includes.each dans la vue.

Ensuite, vous pouvez faire ce que vous voulez dans votre :after_filer car la variable @js_includes est déjà disponible.

0

Oui, c'est ce que je l'ai fait avant, cependant, quelques-unes des pages que j'ai inclure le fichier javascript ou css dans la vue.

----- register.html.erb ----- 
<% content_for(:javascripts) do %> 
<%= javascript_include_tag 'register' %> 
<% end %> 
----- rest of the register page 

----- application.html.erb ----- 
..... 
<%= yield(:javascripts) %> 
</body> 
</html> 
----- end of application.html.erb file ----- 

Alors ce qui se passe est que lorsque la page arrive à la fin, il charge juste les fichiers javascript qui ont été renseignés dans la vue et les aides. Je voudrais récupérer ces fichiers JS ajoutés.