2013-03-19 5 views
8

Ich verwende Rails 3.2.13 und JavaScript in der /assets/javascripts/globals.js.erb. Gibt es trotzdem Zugriff auf Rails-Helfer oder Controller-Daten in der JavaScript-Datei? Etwas wie ...Zugriff auf current_user Helfer in JavaScript

var App = { 
    globals: { 
    user: { 
     name: '<%= current_user.name %>' 
    } 
    } 
}; 

Antwort

14

können Sie das nicht tun. Die Assets werden einmal in der Produktion kompiliert und sollten daher nicht vom Status der Anfrage abhängig sein (wie der aktuelle Benutzer oder die an die Anfrage übergebenen Parameter). Das nächste, was Sie tun können, ist eine globale Variable in Ihrer Anwendung Layout hinzuzufügen

<script type="javascript"> 
    App.globals.user.name = <%= current_user.name %> 
</script> 
+0

Thank you very much :) – Zeck

+0

ziemlich ähnlich, aber vielleicht nützlich für jemanden anderen. '<% = javascript_tag do%> window.username =" # {j aktueller_benutzer.name} "; <% end %> ' – Horacio