2011-06-29 2 views
0

Специальный админ/countries_controller корректно используется для всех действий (индекс, ...), за исключением создания записей. Здесь регулярное countries_controller из каталога родительского контроллера активно:Маршрутизация Rails Admin Controller Создать действие

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

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

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 help with building Admin area - Routing problem

+0

Как вы строите URL-адрес, на ваш взгляд, который инициирует запрос POST? – drummondj

+0

'<% = link_to 'New Country', new_admin_country_path%>' приводит к стандартному помощнику формы эшафота, содержащему '<% = form_for (@country) do | f | %> 'и' <% = f.submit%> ' – David

ответ

1

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

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

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

+0

Правда, спасибо, Райан! – David

Смежные вопросы