【问题标题】:Ruby on Rails: localhost:3000/my_pages_dont_show_upRuby on Rails:localhost:3000/my_pages_dont_show_up
【发布时间】:2016-01-12 18:20:10
【问题描述】:

当我“rails server”时,localhost:3000 在我的浏览器(chrome)中工作。这是术语:

tom@toms-ubuntu:~/rails_projects/routesapp$ rails s
=> Booting WEBrick
=> Rails 3.2.16 application starting in development on http://localhost:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2016-01-12 10:56:27] INFO  WEBrick 1.3.1
[2016-01-12 10:56:27] INFO  ruby 1.9.3 (2013-11-22) [x86_64-linux]
[2016-01-12 10:56:27] INFO  WEBrick::HTTPServer#start: pid=4751 port=3000

但是对于 localhost:3000/page/home 浏览器显示:

NoMethodError in Page#home

Showing /home/tom/rails_projects/routesapp/app/views/layouts/application.html.erb where line #5 raised:

undefined method `[]' for nil:NilClass
Extracted source (around line #5):

2: <html>
3: <head>
4:   <title>Routesapp</title>
5:   <%= stylesheet_link_tag    "application", :media => "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>

Rails.root:/home/tom/rails_projects/routesapp

应用程序跟踪 |框架跟踪 |全跟踪 app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___1001173571477850876_70164200470120'

我生成了下面的 routes.rb 文件中显示的 html 文件; html 文件位于 app/views/page

Routesapp::Application.routes.draw do
  get 'page/home'

  get 'page/about'

  get 'page/contact'

任何想法、cmets、建议将不胜感激。这对我来说是新的。谢谢

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    既然你是初学者,让我解释一下。

    您的页面正在显示;你有一个错误:

    nil:NilClass 的未定义方法 `[]'

    这是一个标准的 Ruby 错误 - 这意味着 undeclared variable

    由于 Ruby 是 Object Orientated,它会将“nil”值分配给 NilClass——这意味着您最终会遇到奇怪的错误。

    --

    通常,通过调试,您将能够引用行号,并查看问题所在。

    由于您没有包含您的视图,我只能建议您尝试删除以下行作为测试

    5:   <%= stylesheet_link_tag    "application", :media => "all" %>
    6:   <%= javascript_include_tag "application" %>
    

    如果这些方法可以解决问题,您必须填写 app/assets/javascripts/application.jsapp/assets/stylesheets/application.css,或使用类似 nodeJS 的内容来解决此类错误。


    您还可以更好地使用以下路线:

    #config/routes.rb
    resources :pages, path: "page", only: [] do
       %w(home about contact).each do |page|
          get page
       end
    end
    

    【讨论】:

      【解决方案2】:

      Buddy 在第 5 行和第 6 行取“应用程序”并将“应用程序”一词更改为“默认值”

      【讨论】:

        猜你喜欢
        • 2013-06-09
        • 2015-12-25
        • 1970-01-01
        • 2015-04-23
        • 2015-02-22
        • 2010-12-01
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        相关资源
        最近更新 更多