ERB/Coffee Rails 中 image-url 的未定义局部变量或方法“image”

undefined local variable or method `image' for image-url in ERB/Coffee Rails

"controllers.js.coffee.erb" 文件中有如下代码:

  $rootScope.icons = [
                    "<%= image-url('marker_1.png') %>", '/assets/marker_2.png',
                    '/assets/marker_3.png', '/assets/marker_4.png',
                    '/assets/marker_5.png', '/assets/marker_6.png',
                    '/assets/marker_7.png',
                 ]

但是当我尝试打开浏览器页面时出现以下错误:

"undefined local variable or method `image' for #<#<Class:0x007fdb8e411d08>:0x007fdb8e1e1f88>
  (in /Users/marya/Rails/web_app/app/assets/javascripts/angular/modules/places/controllers.js.coffee.erb)"

我该如何解决?提前致谢。

image-url 是 sass-rails 提供的辅助方法,可以在 javascript 和样式表文件中使用,但不能在 erb 文件中使用。您应该在 <%= %> 之外使用 asset_path 或使用 image-url,这样它就不会被评估为 ruby 脚本。

http://guides.rubyonrails.org/asset_pipeline.html#css-and-sass