话语论坛: /404在现有路线上找不到



假设我们创建了一个新的控制器,该控制器具有执行操作并渲染视图的操作。我们通过插件文件添加路由,我检查了通过耙子路由找到的路由为

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操作的RegisterControllerhttp://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

最新更新