2012-02-12 8 views
6

tengo un cms simple en ROR 3.2. con este esquema carpeta:agregando controladores con un administrador de espacio de nombres como una subcarpeta

de aplicaciones | | controladores mis controladores

pero quería tener una sección "admin" en el que podía tener algunos controladores también. así que creé

rails generate controller admin/Users

app | Controladores | administrador & mis controladores de administración

por lo que mi archivo es:

users_controller.rb 
class Admin::UsersController < ApplicationController 

    def index 
    render(:text => "sou o index!") 
    end 

    def list 
    render(:text => "sou o list") 
    end 

end 

En mis rutas tengo:

namespace :admin do 
    resources :users 
    end 

match ':controller(/:action(/:id))(.:format)' 

Im nuevo a los carriles y no puedo averiguar la solución. No puedo encontrarlo en ningún lado.

El problema es que intento hacer Acess:

http://localhost:3000/admin/users/list

y me sale este error:

Unknown action The action 'show' could not be found for Admin::UsersController

+0

Así que, ¿cuál es el problema real? –

+0

¡He actualizado la pregunta! –

+0

¿Qué se supone que está haciendo su acción de "lista"? No es una acción REST estándar de Rails. –

Respuesta

4

Parece que no tienen una comprensión de cómo el enrutamiento reparador rieles funciona por defecto. Recomiendo leer el Resource Routing section of the Rails Guides. De forma predeterminada, cuando usa resources en sus rutas, la acción show es lo que se usa para mostrar un registro de modelo particular. Puede customize this behavior hasta el punto en que puede cambiar la dirección URL que para la acción show, pero no el nombre del método en el modelo:

resources :users, :path_names => { :new => 'list' } 

Si va a utilizar el enrutamiento REST (que debería), se debería eliminar la ruta predeterminada (match ':controller(/:action(/:id))(.:format)'). Además, puede ejecutar rake routes en cualquier momento desde la terminal para ver detalles sobre su configuración de enrutamiento actual.

+1

bien, eso tiene sentido. Voy a leer algo de información acerca de eso porque es algo que también me llamó la atención. Gracias. –

+1

esas guías fueron realmente útiles. todo funcionando según las expectativas. gracias –

+0

Me alegra escuchar, las guías no son muy detalladas en algunos lugares, pero son un muy buen punto de partida. –

1

En el camino correcto, sin embargo, hay algunos pasos más para completar su solución para una sección CRUD de administración de back-end. Revisa el siguiente ejemplo de cómo crear usted mismo:

https://stackoverflow.com/a/15615003/2207480

Cuestiones relacionadas