Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 名称空间的rails路由在控制台中找到正确的控制器,但不是活动的_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 名称空间的rails路由在控制台中找到正确的控制器,但不是活动的

Ruby on rails 名称空间的rails路由在控制台中找到正确的控制器,但不是活动的,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,超级难倒现在-运行轨道3.2.17 我有一个路径帮助器: partner_documents_partner_documents_path 正确生成此路径的路径: /en/partner/documents/partner_documents 根据我的控制台,可以识别并正确映射到所需的控制器操作: [12] » r = Rails.application.routes => #<ActionDispatch::Routing::RouteSet:0x007fb82

超级难倒现在-运行轨道3.2.17

我有一个路径帮助器:

partner_documents_partner_documents_path
正确生成此路径的路径:

/en/partner/documents/partner_documents
根据我的控制台,可以识别并正确映射到所需的控制器操作:

   [12] »  r = Rails.application.routes
    => #<ActionDispatch::Routing::RouteSet:0x007fb828169a58>
   [13] » r.recognize_path("en/partner/documents/partner_documents")
    => {
    :action => "partner_documents",
    :controller => "project/partner/documents",
    :locale => "en"
    }
它应该命中的控制器,位于上面路径(
project/partner/documents
)的控制器是
project::partner::documentscocontroller
,而不是
project::documentscocontroller

起初,我认为我的控制台环境和本地服务器之间可能有问题,但事实并非如此。此外,错误页面上显示的请求参数甚至显示了正确的控制器路径:

Request parameters  
{
 "action"=>"partner_documents", 
 "controller"=>"project/partner/documents", 
 "locale"=>"en"
}
这是
routes.rb中的相关条目:

scope '/:locale', :module => :project do
...
  namespace :partner do
  ...
  resources :documents do
    collection do
      get :partner_documents
      ...

这里发生了什么事?

这个问题源于不正确的包含。我不确定为什么我没有得到一个“未初始化常量”错误,而不是让它重定向到另一个控制器,但在我试图击中的控制器中,我有以下情况:

class Project::Partner::DocumentsController < Project::PartnerController
  include EsignatureHelper
class Project::Partner::DocumentsController
我需要的是:

class Project::Partner::DocumentsController < Project::PartnerController
  include Esignatures::EsignatureHelper
class Project::Partner::DocumentsController
你能运行这个命令“rake routes”并发布输出吗?@CaffeineCoder在控制台中使用“show routes”给我一行相关的命令:“partner\u documents\u partner\u documents GET/:locale/partner/documents/partner\u documents(:format)finance_it/partner/documents#partner_documents‘你能把它作为有问题的代码发布以提高可读性吗?@CaffeineCoder是的,对不起,我完全应该这样做。然而,我刚刚解决了这个问题。非常感谢您抽出时间!别担心,干杯:)
class Project::Partner::DocumentsController < Project::PartnerController
  include Esignatures::EsignatureHelper