добавление контроллеров с администратором пространства имен в качестве подпапки - PullRequest
6 голосов
/ 12 февраля 2012

У меня есть простой CMS на ROR 3.2. с этой схемой папок:

app | контроллеры | мои контроллеры

но я хотел иметь раздел "admin", где я мог бы также иметь несколько контроллеров поэтому я создал

rails генерирует контроллер admin / Users

приложение | контроллеры | admin & my admin controllers

так что мой файл:

users_controller.rb
class Admin::UsersController < ApplicationController

  def index
    render(:text => "sou o index!")
  end

  def list
    render(:text => "sou o list")
  end

end

На моих маршрутах у меня есть:

namespace :admin do
    resources :users
  end

match ':controller(/:action(/:id))(.:format)'

Я новичок в рельсах, и я не могу найти решение. Не могу найти его где-нибудь.

ПРОБЛЕМА я пытаюсь сделать доступ:

http://localhost:3000/admin/users/list

и я получаю эту ошибку:

Неизвестное действие. Не удалось найти действие «show» для Администратор :: UsersController

Ответы [ 2 ]

4 голосов
/ 12 февраля 2012

Похоже, вы не понимаете, как RESTful-маршрутизация Rails работает по умолчанию. Я рекомендую прочесть раздел Маршрутизация ресурсов в Rails Guides . По умолчанию при использовании resources в ваших маршрутах действие show используется для отображения конкретной записи модели. Вы можете настроить это поведение до такой степени, чтобы можно было изменить URL-адрес для действия show, но не имя метода в модели:

resources :users, :path_names => { :new => 'list' }

Если вы собираетесь использовать маршрутизацию RESTful (что вам следует), вы должны удалить маршрут по умолчанию (match ':controller(/:action(/:id))(.:format)'). Кроме того, вы можете в любое время запустить rake routes из терминала, чтобы просмотреть подробную информацию о текущей конфигурации маршрутизации.

1 голос
/ 25 марта 2013

Вы на правильном пути, однако, есть еще несколько шагов, необходимых для завершения вашего решения для раздела CRUD бэкэнд-администратора. Посмотрите на следующий пример, как создать его самостоятельно:

https://stackoverflow.com/a/15615003/2207480

...