вместо 'new' найден маршрут 'show' - PullRequest
2 голосов
/ 26 января 2012

рельсы 3.1

маршруты рейка для администратора / section_contoller

trigger_admin_section GET    /admin/sections/:id/trigger(.:format)    {:action=>"trigger", :controller=>"admin/sections"}
       admin_sections GET    /admin/sections(.:format)                {:action=>"index", :controller=>"admin/sections"}
                      POST   /admin/sections(.:format)                {:action=>"create", :controller=>"admin/sections"}
    new_admin_section GET    /admin/sections/new(.:format)            {:action=>"new", :controller=>"admin/sections"}
   edit_admin_section GET    /admin/sections/:id/edit(.:format)       {:action=>"edit", :controller=>"admin/sections"}
        admin_section GET    /admin/sections/:id(.:format)            {:action=>"show", :controller=>"admin/sections"}
                      PUT    /admin/sections/:id(.:format)            {:action=>"update", :controller=>"admin/sections"}
                      DELETE /admin/sections/:id(.:format)            {:action=>"destroy", :controller=>"admin/sections"}

routes.rb

namespace :admin do
  resources :sections do
    resources :items
    resources :parameters
    get :trigger, :on => :member
  end
...
end

вид

<%= link_to "Add a section", new_admin_section_path, :class=>'add-btn' %>

сгенерированная ссылка

http://localhost:3000/admin/sections/new

результат

No route matches {:action=>"show", :controller=>"admin/sections", 
                  :id=>#<Section id: nil, ..., meta_description: nil}

странная ошибка или моя ошибка. другие контроллеры имеют похожие маршруты и все работает нормально. Например:

 <%= link_to 'Add a group', new_admin_group_path, :class=>'add-btn' %>

работает ОТЛИЧНО!

пожалуйста, помогите или я когда-нибудь убью себя

upd1 та же проблема на героку с этим приложением.

upd2 присоединиться к выпуску github: https://github.com/rails/rails/issues/4704

Ответы [ 2 ]

1 голос
/ 28 января 2012

я нашел ответ.

как только я поместил эту строку в представление 'admin / section / _form'

<%= link_to 'delete', admin_section_path(@section), :method => :delete, :confirm => "Sure?" %>

я использовал эту форму для создания и редактирования. поэтому комбинация нового объекта и удаление ссылки на него вызвало ошибку. я использовал отладчик для анализа.

0 голосов
/ 26 января 2012

Посмотрите на ваш метод создания в section_controller.

Полагаю, ваш раздел создан правильно, но он перенаправлен на действие "show".И представление "шоу" может не существовать.

Вы проверили свою базу данных?Сохранен ли раздел?

...