Ruby on rails 半静态页面菜单部分
我已经创建了一个半静态页面,我想将其添加到application.html.erb文件的菜单中,并通过部分到全部视图进行调用,但它只在页面中起作用 用户索引错误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
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 %>