加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – rails app’ininitialized constant HomeContr

发布时间:2020-12-17 03:29:06 所属栏目:百科 来源:网络整理
导读:我是使用基础的新手,我使用脚手架创建了简单的帖子应用程序 我已经完成了以下步骤: rails new blog 然后在Gemfile中添加了以下内容 gem 'foundation-rails'group :development do gem 'rails_layout'end 然后 $bundle install$rails generate layout:instal
我是使用基础的新手,我使用脚手架创建了简单的帖子应用程序
我已经完成了以下步骤:

rails new blog

然后在Gemfile中添加了以下内容

gem 'foundation-rails'
group :development do
  gem 'rails_layout'
end

然后

$bundle install
$rails generate layout:install foundation5 --force
$rails g scaffold Post title desc:text
$rake db:migrate

现在app运行良好@本地主机端口3000 /帖子

但是当我点击导航栏中的“主页”按钮时,它会产生错误:

application.html.erb文件:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title><%= content_for?(:title) ? yield(:title) : "Found Rails" %></title>
    <meta name="description" content="<%= content_for?(:description) ? yield(:description) : "Found Rails" %>">
    <%= stylesheet_link_tag 'application',media: 'all','data-turbolinks-track' => true %>
    <%# Modernizr is required for Zurb Foundation %>
    <%= javascript_include_tag 'vendor/modernizr' %>
    <%= javascript_include_tag 'application','data-turbolinks-track' => true %>
    <%= csrf_meta_tags %>
  </head>
  <body>
    <header>
      <%= render 'layouts/navigation' %>
    </header>
    <main role="main">
       <%= render 'layouts/messages' %>
       <%= yield %>
    </main>
  </body>
</html>

_navigation.html.erb文件:

<%# navigation styled for Zurb Foundation 5 %>
<nav class="top-bar" data-topbar>
  <ul class="title-area">
    <li class="name"><%= link_to 'Home',root_path %></li>
    <li class="toggle-topbar menu-icon"><a href="#">Menu</a></li>
  </ul>
  <div class="top-bar-section">
    <ul>
      <%= render 'layouts/navigation_links' %>
    </ul>
  </div>
</nav>

我的routes.rb文件:

Rails.application.routes.draw do
  resources :posts
  root :to => "home#index"

  # The priority is based upon order of creation: first created -> highest priority.
  # See how all your routes lay out with "rake routes".

  # You can have the root of your site routed with "root"
  # root 'welcome#index'

  # Example of regular route:
  #   get 'products/:id' => 'catalog#view'

  # Example of named route that can be invoked with purchase_url(id: product.id)
  #   get 'products/:id/purchase' => 'catalog#purchase',as: :purchase

  # Example resource route (maps HTTP verbs to controller actions automatically):
  #   resources :products

  # Example resource route with options:
  #   resources :products do
  #     member do
  #       get 'short'
  #       post 'toggle'
  #     end
  #
  #     collection do
  #       get 'sold'
  #     end
  #   end

  # Example resource route with sub-resources:
  #   resources :products do
  #     resources :comments,:sales
  #     resource :seller
  #   end

  # Example resource route with more complex sub-resources:
  #   resources :products do
  #     resources :comments
  #     resources :sales do
  #       get 'recent',on: :collection
  #     end
  #   end

  # Example resource route with concerns:
  #   concern :toggleable do
  #     post 'toggle'
  #   end
  #   resources :posts,concerns: :toggleable
  #   resources :photos,concerns: :toggleable

  # Example resource route within a namespace:
  #   namespace :admin do
  #     # Directs /admin/products/* to Admin::ProductsController
  #     # (app/controllers/admin/products_controller.rb)
  #     resources :products
  #   end
end

我错过了什么?

解决方法

你的问题是这一行:

root :to => "home#index"

在routes.rb文件中.

这告诉您的应用程序根URL(因此http://:3000 / URL)应该查找名为“home”的控制器,其中包含一个动作“index”.

为此,您需要在app / controllers文件夹中有一个HomeController.rb,并在其中有一个def为’index’.

我建议运行此命令

rails generate controller home index

生成家庭控制器.在运行scaffold命令之前,许多教程都会为您提供此行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读