2012-09-10 71 views
0

我还是Ruby on Rails的新手,一直试图将我的默认路由配置几个小时而没有成功。目前我的路线设置为Rails根路由索引

root :to => 'proto#index' 

但是我不知道要创建/编辑哪个文件。我完全丧失了。我从服务器收到的错误是

AbstractController::ActionNotFound (The action 'index' could not be found for ProtoController): 

我在找什么文件?

回答

4

您正在寻找应用程序/控制器/ proto_controller.rb

它应该包含类似下面的

class ProtoController < ApplicationController 

    def index 
    end 

end 

然后你想使一个文件在应用程序/视图/原/包含页面的html的index.html.erb

+1

已经有一段时间了,因为您需要创建一个虚拟动作来让您的路线工作。只是一个看法,它应该是足够的。 – jdoe

+0

@jdoe这很公平,但OP对Rails来说很新颖,我认为这可能会让事情变得更加清晰,以展示该方法。 – declan

2

有几件事你应该检查。

你有一个名为“proto”的控制器吗?

如果是这样,您的proto控制器中是否有index动作?

理想情况下,你的原控制器应该是这样..

class ProtoController < ApplicationController 
    def index 
    @protos = Proto.all 
    end 
end 
1

我认为这是app/controllers/proto_controller.rb

和Rails惯例是在控制器变复数型号名称。

0

root :to => 'proto#index'应该在配置/ routes.rb中

ProtoController应该在app /控制器/ proto_controller.rb定义

class ProtoController < ApplicationController 
    def index 
    # ... 
    respond_to do |format| 
     format.html 
    end 
    end 
end 

这一行动将寻求通过应用程序/视图/原定义的模板/index.html.erb并渲染出来。