在文件index.html.erb
中,我有代码打印@calender_items
的每个元素的一些属性:
<% @calender_items.each do |calender_item| %>
...
<td><%= calender_item.date %></td>
...
<% end %>
实例变量由此行在控制器中分配:
@calender_items = CalenderItem.all
如果我注释掉这一行,index.html.erb
文件仍然有效。有人可以给我任何提示,为什么我仍然可以访问实例变量,即使它不再被分配?实例变量什么时候被销毁?
答案 0 :(得分:2)
检查before_filters
是否可以在触发之前为某些操作设置变量
检查您调用的操作是否实际上是您删除实例变量的操作。例如:controller/index
致电Controller
def index
行动
检查ApplicationController
,也许正在设置变量。
实例变量只能通过请求生存,因此如果您对代码进行了注释,则该代码不起作用。