假设我们创建了一个新的控制器,其中包含执行操作和渲染视图的操作。我们通过插件文件添加路径,并检查通过rake路径找到的路径
register_vip_section GET /register/vip_section(.:format)vip_section #index
控制器看起来像:
class VipSectionController< ApplicationController中
def index ... 端
端
但是当我尝试拨打相同的电话时:
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"
答案 0 :(得分:0)
来自rake routes
的路线格式表明,当您拨打电话时,它会查找RegisterController
vip_section
行为: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