Пространство имен с дублированным именем ресурса - PullRequest
1 голос
/ 05 января 2012

Я новичок в рельсах и пытаюсь разработать систему, которая будет иметь несколько разных типов пользователей. Я пытаюсь использовать пространства имен для разделения этих областей, но я хочу, чтобы модели были общими. Я создал объект пользователя, и я хочу иметь возможность редактировать его из пространства имен администратора. Я создал леса Admin :: UserController и определил маршруты как:

namespace :admin do
    resources :users
end

root :to => "home#index"

Когда я перехожу на admin/users, он показывает нормально, но нажатие «Создать пользователя» выдает мне ошибку NoMethodError, говоря, что он не может найти путь users_path. После поиска я понял, что мне нужно обновить мой route.rb до:

resources :users

namespace :admin do
    resources :users
end

root :to => "home#index"

Теперь я могу перейти к форме admin/users/new, но когда я публикую сообщение, она пытается вернуться к /users. Мои два вопроса: 1. Как я могу заставить эту работу? и 2. я даже подхожу к этому правильно, пытаясь использовать пространства имен таким образом?

1 Ответ

2 голосов
/ 05 января 2012

У вас есть маршруты, созданные для /admin/users и /users.Если вы хотите использовать Admin::UsersController, используйте admin_users_path и если вы хотите использовать UsersController, используйте users_path в своей форме.

Я также хотел бы предложить вам использовать команду rake routes, если выкогда-нибудь задумывались, как называются сгенерированные маршруты.

...