Маршрутизация Rails Admin Controller Создать Действие - PullRequest
0 голосов
/ 30 июня 2011

Выделенный admin / country_controller правильно используется для всех действий (index, ...), кроме создания записей. Здесь активен обычный country_controller из каталога родительского контроллера:

Started POST "/countries" for 127.0.0.1 at 2011-06-29 23:26:38 +0200
  Processing by CountriesController#create as HTML

Чего не хватает, чтобы действие POST было перенаправлено на admin / страны ?

routes.rb:

  resources :countries

  namespace :admin do
    resources :countries
  end

маршруты рейка:

     countries GET    /countries(.:format)                {:action=>"index", :controller=>"countries"}
               POST   /countries(.:format)                {:action=>"create", :controller=>"countries"}
   new_country GET    /countries/new(.:format)            {:action=>"new", :controller=>"countries"}

   admin_countries GET    /admin/countries(.:format)          {:action=>"index", :controller=>"admin/countries"}
                   POST   /admin/countries(.:format)          {:action=>"create", :controller=>"admin/countries"}
 new_admin_country GET    /admin/countries/new(.:format)      {:action=>"new", :controller=>"admin/countries"}

Подобный вопрос без ответа здесь: Rails помогает в создании админки - проблема с маршрутизацией

1 Ответ

1 голос
/ 30 июня 2011

Ваш form_for также должен быть пространством имен:

<%= form_for [:admin, @country] do |f| %>
   ...
<% end %>

Когда вы передаете @country на form_for, он не будет знать, в какое пространство имен вы хотите, чтобы эта форма пошла, и поэтомупо умолчанию используется только стандартный POST /countries URL.

...