2015-06-23 41 views
0

我是Ruby on Rails的新手,所以我遵循Michael Hartl的Ruby on Rails教程,我正在运行一个问题。Ruby on Rails - Hartl教程第7章 - 无法为UsersController找到操作'index'

在第7章第1节,你都应该是显示用户页面,但我遇到了这个错误:

“动作‘索引’无法找到UsersController”

当我尝试去“本地主机:3000 /用户”

我不知道我需要包括所有的信息,所以这里是一些,请让我知道,如果我需要更多。我非常感谢任何帮助,我可以得到。我在这里查找了类似的问题,但没有人帮助我解决问题。

这里是我的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只是说你必须手工创建它,所以我认为这就是他的意思。再次,任何帮助将不胜感激。谢谢。

+0

那么,没有索引方法。 –

+0

我一直在想我需要这个,但我仍然对此很陌生。本教程没有提及它,这就是我困惑的原因。我需要把它运行正确吗? –

+0

在控制器中。消息所说的控制器缺少它。或者等到第9章。 –

回答

1

你只需要一个索引的地方标记,这是在两个文件中完成。答案在第9章的书中,这是你所做的。

首先,在users_controller.rb,补充一点:

def index 
    @users = User.all 
end 

接下来,创建文件app /视图/用户/ index.html.erb并添加此

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

更会在书中稍后做,但为了继续没有任何愚蠢的,不必要的错误,这就足够了。

0

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

class UsersController < ApplicationController 

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

    def new 
    end 

    def index 
    @users = User.all 
    end 
end 
+0

然而,除此之外没有其他的支持。用户索引页在第9章。 –

+0

我明白了。我补充说,现在我收到关于缺少模板的错误。我想我会继续努力,直到第9章像戴夫牛顿所说的那样,希望这能解决我的问题。 –

相关问题