Релси: form_for ресурс с пространство от имена

Искам да настроя CRUD за потребители, наличен само за администратори на моето уеб приложение. Така че в routes.rb:

namespace :admin do
  resources :user
end

което означава това:

admin_user_index GET    /admin/user(.:format)                  admin/user#index
                 POST   /admin/user(.:format)                  admin/user#create
  new_admin_user GET    /admin/user/new(.:format)              admin/user#new
 edit_admin_user GET    /admin/user/:id/edit(.:format)         admin/user#edit
      admin_user GET    /admin/user/:id(.:format)              admin/user#show
                 PUT    /admin/user/:id(.:format)              admin/user#update
                 DELETE /admin/user/:id(.:format)              admin/user#destroy

Показване, индексиране работят добре, но редактиране и ново не. Продължавам да получавам тази грешка в първия ред на _form:
недефиниран метод `user_path' за #‹#:0x007fb6645c6378>

което е това:

Как мога да използвам form_for с ресурс с пространство от имена?


person Barbared    schedule 08.06.2012    source източник


Отговори (2)


Можете да добавите името на пространството от имена като символ:

 <%= form_for [:admin, @user] do |f| %>
person miked    schedule 08.06.2012
comment
О, човече, преследвах опашката си около час, докато намеря този отговор. - person janosrusiczki; 07.04.2013

Когато използвате form_for, се приема, че подходящият път е [model_name]_path. Трябва изрично да му кажете URL адреса с

form_for @user, url: admin_user_path
person cdesrosiers    schedule 08.06.2012