Ruby on rails 动作控制器:捕获异常[ViewerController中的NoMethodError#show]
我试图单击导航中的链接,但出现了一条错误消息 ViewerController中的命名错误#显示 错误指向以下路径: /Users/ianmcdonald/Sites/beatsbymakii/app/controllers/viewer\u controller.rb:5:in `秀 这是我为该方法定义的代码Ruby on rails 动作控制器:捕获异常[ViewerController中的NoMethodError#show],ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图单击导航中的链接,但出现了一条错误消息 ViewerController中的命名错误#显示 错误指向以下路径: /Users/ianmcdonald/Sites/beatsbymakii/app/controllers/viewer\u controller.rb:5:in `秀 这是我为该方法定义的代码 class ViewerController < ApplicationController def show @page = Page.find_by_name
class ViewerController < ApplicationController
def show
@page = Page.find_by_name(params[:name])
@subpages = @page.subpages
@pagetitle = @page.title
login_required if @page.admin?
end
end
class ViewerController
请帮助我,因为我不知道下一步该做什么。通过如下方式将@page输出到控制台,检查@page是否返回为
nil
:
def show
@page = Page.find_by_name(params[:name])
p "@pageeeeeeeee"
puts @page.inspect
@subpages = @page.subpages
@pagetitle = @page.title
login_required if @page.admin?
end
我几乎可以肯定这种情况会发生,因为数据库中可能没有具有特定名称的页面。通过如下方式将@page输出到控制台,检查@page是否返回为
nil
:
def show
@page = Page.find_by_name(params[:name])
p "@pageeeeeeeee"
puts @page.inspect
@subpages = @page.subpages
@pagetitle = @page.title
login_required if @page.admin?
end
我几乎可以肯定这种情况会发生,因为数据库中可能没有具有特定名称的页面。是否定义了页面#子页面?是否定义了@page nil?page#子页面?@page nil不是吗?同样的消息仍然显示在你给我尝试的代码中?@IanMcDonald..这是一个检查@page是否为nil的代码..你必须在启动应用程序服务器的终端窗口中进行检查(通过使用命令
rails s
或ruby script/server
)。在那里,您可能会看到“@pageeeee”
,并且在该值下,@page
变量的值……很可能是nil
。我用代码编辑了我的帖子,以检查@page是否存在,如果为nil,则执行其他操作相同的消息仍然显示在您给我的代码中,以供尝试?@IanMcDonald..这是一个检查@page是否为nil的代码..您必须在启动应用服务器的终端窗口中进行检查(通过使用命令rails s
或ruby script/server
)。在那里你可能会看到“@pageeeee”
,并且在该命令下,@page
变量的值……很可能是nil
。我用代码编辑了我的帖子,以检查@page是否存在,如果为nil,则执行其他操作