0

在文件index.html.erb中,我有代码打印每个元素的一些属性@calender_items

<% @calender_items.each do |calender_item| %>​
  ...
  <td><%= calender_item.date %></td>
  ...
<% end %>

实例变量由控制器中的这一行分配:

@calender_items = CalenderItem.all

如果我注释掉这一行,index.html.erb文件仍然有效。有人可以给我任何提示,说明为什么即使不再分配实例变量,我仍然可以访问它?实例变量什么时候被销毁?

4

1 回答 1

2

检查是否before_filters可以在触发它们之前为某些操作设置变量。
检查您调用的操作是否实际上是您删除实例变量的操作。例如:controller/index呼吁Controller def index采取行动。
检查ApplicationController,也许变量也被设置在那里。

实例变量仅通过请求存在,因此如果您对代码进行了注释,它应该不起作用。

于 2013-08-30T13:55:32.957 回答