Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 半静态页面菜单部分_Ruby On Rails_Partial Views_Static Pages - Fatal编程技术网

Ruby on rails 半静态页面菜单部分

Ruby on rails 半静态页面菜单部分,ruby-on-rails,partial-views,static-pages,Ruby On Rails,Partial Views,Static Pages,我已经创建了一个半静态页面,我想将其添加到application.html.erb文件的菜单中,并通过部分到全部视图进行调用,但它只在页面中起作用 用户索引错误 You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.each Extracted source (around line

我已经创建了一个半静态页面,我想将其添加到application.html.erb文件的菜单中,并通过部分到全部视图进行调用,但它只在页面中起作用

用户索引错误

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
Extracted source (around line #1):

1: <% @pages.each do |page| %>
2: <li><%=link_to page.name, page.name %></li>
3: <% end %>
application.html.erb

<%= render :partial => "pages/menu" %>
“页面/菜单”%>
pages/_menu.html.erb

<% @pages.each do |page| %>
<li><%=link_to page.name, page.name %></li>
<% end %>

  • 轨道-V3.0.7

    我尝试了一些东西,但仍然有问题,有一段时间没有在rails项目上工作,我非常生疏


    提前感谢您的帮助

    @页面未初始化。由于您在应用程序布局中访问它,我建议您在application\u controller.rb中定义一个before\u过滤器来初始化这个@pages数组。

    是否初始化了
    @pages
    数组?第一:在部分中使用实例变量是一种反模式,第二:您在哪里定义
    @pages
    不确定您的意思,已经有一段时间没有在rails中工作了。请首先尝试找出@pages实例变量没有初始化的原因。工作正常我在我的应用程序\u控制器中添加了一个before\u过滤器。谢谢你,欧根!
    <% @pages.each do |page| %>
    <li><%=link_to page.name, page.name %></li>
    <% end %>