在我的资产中,我有一个名为 的文件maps.js.erb
,基本上只有以下(调试)内容:
alert("<%= @map.width %>");
这个 JS 文件是通过show.html.erb
属于地图的视图加载的。
<%= javascript_include_tag params[:controller] %>
<h1><%= @map.title %></h1>
…
HTML 文件本身显示地图的标题,例如当浏览到 时/maps/1/
,因为@map
在控制器中定义。但是,一旦我包含 JS 文件,我就会收到以下错误:
地图中的 NoMethodError#show
显示
…/app/views/maps/show.html.erb
第 1 行提出的位置:nil 的未定义方法“标题”:NilClass(在
…/app/assets/javascripts/maps.js.erb
)
- 为什么
@map
在文件中不可用js.erb
? - 我还能如何访问控制器中定义的这个实例变量?