posts.js.coffee.erb
%Vor%Dies macht eine Ausnahme:
throw Error ("NameError: Undefinierte lokale Variable oder Methode 'list_posts_path' für # & lt; #: 0x00000003557438 & gt; \ n ...
list_posts_path gibt den korrekten Pfad zurück, wenn ich ihn im Controller verwende. Was mache ich falsch?
Ja, tu das nicht. :)
Sie befinden sich nicht in einem Controller, obwohl Sie ERB verwenden. Der coffeescript-Compiler weiß nichts über Ihre Routen oder Routing-Helfer, auf die Ihre Ansichten normalerweise über den Controller zugreifen.
Ich hatte das gleiche Problem, und wie bereits erwähnt, könnten Sie etwas tun wie:
Ihre_layout.html.erb
<%= render partial: 'your_partial.html.erb', locals: { action_url: list_posts_path } %>
_your_partial.html.erb
<div id='container' data-action-url="<%= action_url %>" .... >
posts.js.coffee.erb
jQuery ->
url = $('#container').data('action-url')
console.log "loading url: #{url} !!!"
Eine andere Alternative besteht darin, ein Datenattribut zu setzen, das Ihren Pfad auf einem relevanten Element hält ... und dann mit dem js / coffee code
Tags und Links ruby-on-rails coffeescript