Маршрут не найти - Рельсы - PullRequest
0 голосов
/ 22 марта 2020
Rails 3.2

В моих контроллерах / admin / accounts_receivables_contoller.rb у меня есть:

class Admin::AccountsReceivables < Admin::ApplicationController

  def index
    ...
  end

и в одном из представлений у меня есть:

= link_to admin_accounts_receivables_path

В моей конфигурации /routes.rb, у меня есть:

namespace :admin do
  resources :accounts_receivables do
    collection do
      get 'admin_report'
      get 'customer_report'
      post 'process_invoices'
    end
  end
end

Rake Routes, производит:

admin_accounts_receivables GET admin/accounts_receivables(.:format) admin/accounts_receivables#index

Однако, когда я нажимаю на ссылку, я получаю (в браузере, но нет записи в файле журнала):

uninitialized constant Admin::AccountsReceivablesController

У меня нет соответствующей модели AccountsReceivable, поскольку она мне не нужна.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Класс должен иметь имя AccountsReceivablesController, и вы должны явно вложить класс вместо использования оператора разрешения области видимости, чтобы он имел правильное вложение модуля:

module Admin
  class AccountsReceivablesController < ApplicationController
    def index
      #  ...
    end
  end
end

При использовании оператора разрешения области видимости class Admin::AccountsReceivablesController - вложение модуля разрешается до точки определения, которая является главной (глобальная область), а не Admin. Например:

module Admin
  FOO = "this is what we expected"
end

FOO = "but this is what we will actually get"

class Admin::AccountsReceivablesController < Admin::ApplicationController
  def index
    render plain: FOO
  end
end

См. Руководство по стилю Ruby - пространства имен .

0 голосов
/ 22 марта 2020
class Admin::AccountsReceivables < Admin::ApplicationController

должно быть ...

class Admin::AccountsReceivablesController < Admin::ApplicationController
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...