繁体   English   中英

Ruby on Rails-Hartl教程第7章-无法为UsersController找到动作“索引”

[英]Ruby on Rails - Hartl Tutorial Chapter 7 - The action 'index' could not be found for UsersController

我是Ruby on Rails的新手,所以我正在关注Michael Hartl的Ruby on Rails教程,并且遇到了一个问题。

在第7章的第1节中,应该显示用户页面,但是我遇到了此错误:

“找不到UsersController的动作'index'”

当我尝试转到“ localhost:3000 / users”时

我不确定我需要包括哪些信息,所以这里有一些信息,如果需要更多信息,请告诉我。 我会很感激我能得到的任何帮助。 我确实在这里查找了类似的问题,但是没有一个问题对我有帮助。

这是我的routes.rb

Rails.application.routes.draw do
root              'static_pages#home'
  get 'help' =>     'static_pages#help'
  get 'about' =>    'static_pages#about'
  get 'contact' =>  'static_pages#contact'
  get 'signup' =>   'users#new'
resources :users
end

users_controller.rb

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end

  def new
  end
end

show.html.erb

<%= @user.name %>, <%= @user.email %>

我已经对本教程中的代码进行了仔细检查,但似乎找不到任何区别。 我能想到的唯一问题可能是当它要求我创建show.html.erb时,我右键单击并在我的在线IDE(本教程建议的Cloud 9.io)中单击“创建文件”。 Hartl只是说您必须手动创建它,所以我认为这就是他的意思。 再次,任何帮助将不胜感激。 谢谢。

您只需要一个索引的地标,就可以在两个文件中完成。 答案在第9章的书中,这是您的工作。

首先,在users_controller.rb中,添加以下内容:

def index
  @users = User.all
end

接下来,创建文件app / views / users / index.html.erb并将其添加

<% provide(:title, 'All users') %>
<h1>All Users</h1>

本书稍后将做更多工作,但是为了继续进行而没有任何愚蠢,不必要的错误,这就足够了。

您需要向控制器添加索引操作。

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end

  def new
  end

  def index
    @users = User.all
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM