def refresh_menu
@menu_pages = []
$menu_items.each do |id|
@menu_pages[id - 1] = Page.find(id)
end
end
$menu_items 只是一个数组 [1,2]。显然,我想要做的是使用根据 $menu_items 找到的所有页面填充 @menu_pages。
请注意,
@menu_pages = Page.all
工作正常。那么为什么我不能用 Page.find(id) 一个一个地添加它们呢?
返回的错误:
当你没想到它时,你有一个 nil 对象! 您可能期望 Array 的实例。 评估 nil.each 时发生错误
最佳答案
为什么不直接做呢?...
def refresh_menu
@menu_pages = Page.where(:id => $menu_items)
end
关于错误,$menu_items
在哪里定义?
关于ruby-on-rails - 为什么这不起作用? (Ruby 比 Rails 更重要),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260422/