Forum: Rails-ES Ayuda con Rutas y Recursos

Posted by Armando Mendoza (hazmat)
on 2010-12-15 20:25
Hola, estoy desarrollando una aplicacion en rails 2.3.8 y quiero hacer
lo tipico en estaa aplicaciones, tener en un modulo aparte las cosas
relacionas con la administracion. Es por ello que cuando cree el
scaffold lo hize de la siguiente manera:

ruby script/generate scaffold administracion/usuarios etc.. etc...

esto me genero la carpeta administracion en las vista, controlador y
modelo, todo bien hasta aqui... modifique las rutas... y todo
bien... mi problema comienza en el helper form_for...
cuando quiero agregar un usuario... me aparece el siguiente error.

undefined method `administraciones_usuario_path' for
#<ActionView::Base:0x63feec8>

de donde salio esa parte "administraciones" en plural
El problema se soluciona cambiando el codigo:
<% form_for(@usuario) do |f| %>
por este otro para new:
<% form_for @usuario, :url => administracion_usuarios_path do |f| %>
y para edit:
<% form_for @usuario, :url => administracion_usuario_path do |f| %>
Asi funciona... pero es muy explicito para mi gusto... y tengo que crear
un formulario diferente para new y para edit, mientras que de la manera
implicita usan el mismo formulario.. y puedo reducir el codigo usando un
parcial.
Mi routes.rb es la siguiente:
ActionController::Routing::Routes.draw do |map|
  map.namespace :administracion do |admin|
    admin.resources :usuarios
  end
  map.root :controller => "lobby", :action =>"login"
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end
al hacer rake routes me genera:
    administracion_usuarios GET    /administracion/usuarios(.:format)
                            POST   /administracion/usuarios(.:format)
 new_administracion_usuario GET
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.