【发布时间】:2011-07-14 14:03:04
【问题描述】:
我创建了一个半静态页面,我想将其添加到我的 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 %>
Routes.rb
Vgrant::Application.routes.draw do
resources :pages
get "user_sessions/new"
root :to => "Pages#index"
resources :users
resources :user_sessions
match 'login' => "user_sessions#new", :as => :login
match 'logout' => "user_sessions#destroy", :as => :logout
match ':name', :controller => 'pages', :action => 'show'
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 %>
Rails -v 3.0.7
我已经尝试了一些东西,但这里仍然有问题,有一段时间没有在 Rails 项目上工作了,我很生疏!
提前感谢您的帮助!
【问题讨论】:
-
@pages数组初始化了吗? -
第一:在partials中使用实例变量是一种反模式,第二:你在哪里定义
@pages
标签: ruby-on-rails partial-views static-pages