【发布时间】:2013-06-05 00:40:58
【问题描述】:
我无法解决这个问题,我可以用一些新鲜的眼睛。我在我的一个视图中得到了一个未定义的方法,我不知道为什么。
我在 admin 命名空间下有一组控制器(即 admin/restaurants、admin/menu)。我也有一个管理员控制器,但没有模型支持它。我想使用管理索引页面作为仪表板来显示来自其下命名空间的其他控制器的各种数据。出于某种原因,当我尝试从管理/索引视图中的其他控制器访问任何数据时,我得到未定义的方法 `each' for nil:NilClass
路线
namespace :admin do
resources :restaurants
resources :menus
end
app/controllers/admin_controller.rb 中的控制器
class AdminController < ApplicationController
def Index
@restaurants = Restaurant.all
@menus = Menu.all
end
app/views/admin/index.html.erb 中的视图
<% @restaurants.each do |restaurant| %>
<%= restaurant.name %>
<%= restaurant.address %>
<% end %>
<% @menus.each do |menu| %>
<%= menu.name %>
<%= menu.price %>
<% end %>
【问题讨论】:
-
嗨@Ria,您发布了许多问题,每个问题都有几个赞成票,但您没有接受任何一个。请记住,在 SO 社区中,接受最能解决您的问题的答案被认为是礼貌和有帮助的:meta.stackexchange.com/questions/5234/…
-
抱歉有错别字。我从我的代码中键入它们,而不是复制和粘贴。我会修改拼写。但是,我仍然在@restaurants 上得到未定义的方法。有趣的是我在其他页面上使用了完全相同的代码,例如主页也有一个控制器但没有模型并且它工作得很好,这就是为什么我认为它与命名空间有关。跨度>
-
您似乎已经更新了一些错字更正,但您能否验证一下控制器中操作定义的大小写是否为
def index,以及不是@ 987654326@? -
我确实有索引而不是索引。对我来说,这是一个非常疯狂的举动,但感谢您帮助我。也感谢您提供有关接受答案的信息。
标签: ruby-on-rails