我还是Ruby on Rails的新手,一直试图将我的默认路由配置几个小时而没有成功。目前我的路线设置为Rails根路由索引
root :to => 'proto#index'
但是我不知道要创建/编辑哪个文件。我完全丧失了。我从服务器收到的错误是
AbstractController::ActionNotFound (The action 'index' could not be found for ProtoController):
我在找什么文件?
我还是Ruby on Rails的新手,一直试图将我的默认路由配置几个小时而没有成功。目前我的路线设置为Rails根路由索引
root :to => 'proto#index'
但是我不知道要创建/编辑哪个文件。我完全丧失了。我从服务器收到的错误是
AbstractController::ActionNotFound (The action 'index' could not be found for ProtoController):
我在找什么文件?
您正在寻找应用程序/控制器/ proto_controller.rb
它应该包含类似下面的
class ProtoController < ApplicationController
def index
end
end
然后你想使一个文件在应用程序/视图/原/包含页面的html的index.html.erb。
有几件事你应该检查。
你有一个名为“proto”的控制器吗?
如果是这样,您的proto控制器中是否有index
动作?
理想情况下,你的原控制器应该是这样..
class ProtoController < ApplicationController
def index
@protos = Proto.all
end
end
我认为这是app/controllers/proto_controller.rb
和Rails惯例是在控制器变复数型号名称。
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并渲染出来。
已经有一段时间了,因为您需要创建一个虚拟动作来让您的路线工作。只是一个看法,它应该是足够的。 – jdoe
@jdoe这很公平,但OP对Rails来说很新颖,我认为这可能会让事情变得更加清晰,以展示该方法。 – declan