def refresh_menu
@menu_pages = []
$menu_items.each do |id|
@menu_pages[id - 1] = Page.find(id)
end
end
$ menu_items只是一个数组[1,2]。显然我想要做的是填充@menu_pages,其中包含根据$ menu_items找到的所有页面。
请注意,
@menu_pages = Page.all
工作得很好。那么为什么我不能用Page.find(id)一个一个地添加它们呢?
返回错误:
当你没想到它时,你有一个零对象! 您可能期望一个Array实例。 评估nil.each时发生错误
答案 0 :(得分:5)
为什么不这样做?...
def refresh_menu
@menu_pages = Page.where(:id => $menu_items)
end
关于错误,$menu_items
定义在哪里?
答案 1 :(得分:4)
nowk,谢谢你这个巧妙的伎俩。
对于那些可能通过搜索找到的人:不要忘记在更改初始化程序时重新启动服务器。
答案 2 :(得分:0)
您在哪里定义$menu_items
?从您的错误消息看,refresh_menu
方法看起来无法看到它 - 因此认为它是nil
。