2012-06-08 25 views
15

Quiero configurar el CRUD para usuarios, disponible solo para administradores de mi aplicación web. Así que en routes.rb:Rieles: form_for recurso con nombre de espacio

namespace :admin do 
    resources :user 
end 

lo que significa esto:

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 

Show, funcionan bien, pero el índice de edición y nueva no lo hacen. Sigo recibiendo este error en la primera línea _form:
método no definido `user_path' para # < #: 0x007fb6645c6378>

que es la siguiente:

¿Cómo puedo usar form_for con un recurso de espacio de nombres?

Respuesta

38

Puede añadir el nombre del espacio de nombres como símbolo:

<%= form_for [:admin, @user] do |f| %> 
+1

impresionante! Gracias =) =) – Barbared

+1

Oh hombre, he estado persiguiendo mi cola durante aproximadamente una hora hasta que encontré esta respuesta. – janosrusiczki

3

Cuando utiliza form_for, supone que la ruta adecuada es [model_name] _path. Tienes que decirle explícitamente que la url con

form_for @user, url: admin_user_path 
Cuestiones relacionadas