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

时间:2017-03-11 05:50:59

标签: ruby-on-rails forum discourse

假设我们创建了一个新的控制器,其中包含执行操作和渲染视图的操作。我们通过插件文件添加路径,并检查通过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"

1 个答案:

答案 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