ruby-on-rails - 为什么这不起作用? (Ruby 比 Rails 更重要)

标签 ruby-on-rails ruby

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/

相关文章:

ruby - 将超过 130798 个对象插入数组时出现 SystemStackError

html - 设置 bxSlider 幻灯片放映哪里出错了?

javascript - 当我在 Rails 应用程序中实现日期选择器时,为什么我的索引 View 不起作用

ruby-on-rails - Rails 生产静态文件路由错误

ruby - 为什么Brew推荐安装使用Ruby来调用curl?

ruby - NoMethodError:8 的未定义方法 `type':Fixnum

jquery - 如何在 Rails webpacker 3 中使用 jQuery

ruby-on-rails - rails 中 postgresql 数据库中的 camelCase 列(ActiveRecord)

javascript - 使用 AJAX 请求下载文件数据 - ruby​​ on rails 3

ruby - 'gem update --system' 会使我以前安装的 gem 不兼容吗?