假设我们创建了一个新的控制器,该控制器具有执行操作并渲染视图的操作。我们通过插件文件添加路由,我检查了通过耙子路由找到的路由为
register_vip_section get/register/vip_section(。:format)vip_section#index
控制器看起来像:
类vipsectioncontroller<ApplicationController
def索引 ... 结束
结束
但是,当我试图打电话给以下方式时:
http://localhost:3000/register/vip_section
它不起作用。它正在提高:
Started GET "/404-body?_=1489209463400" for 127.0.0.1 at 2017-03-11 10:47:46 +0530
I, [2017-03-11T10:47:47.051542 #19641] INFO -- : Processing by ExceptionsController#not_found_body as HTML
I, [2017-03-11T10:47:47.054589 #19641] INFO -- : Parameters: {"_"=>"1489209463400"}
D, [2017-03-11T10:47:47.062975 #19641] DEBUG -- : User Load (3.2ms) SELECT "users"
您从rake routes
的路由的格式表明,当您拨打电话时,它将寻找使用vip_section
操作的RegisterController
:http://localhost:3000/register/vip_section
- 或 -
对于您所描述的控制器,您需要在路线中类似的路线:
resources :register do
get 'vip_section', on: :collection
end
编辑:正如我先前说的,对于您提到的路径,您的控制器应称为RegisterController
,并具有称为vip_section
的动作,如下所示
class RegisterController < ApplicationController
def vip_section
end
end
在此路线路径中:http://localhost:3000/register/vip_section
路径的第一部分是controller
,该路径的第二部分是action
方法
edit2:我看到您已将vip_section#index
添加到您提到的路径中。将控制器命名为复数是惯例。请尝试命名您的控制器VipSectionsController