2012-07-06 15 views

Respuesta

14

En esencia, los recursos de enrutamiento son cuando los recursos le otorgan habilidades de acción a un controlador.

http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use

Si se utiliza un pluralizado recursos como una manera de manejar las solicitudes genéricas sobre cualquier tema, a continuación, un recurso singular es una manera de trabajar en el elemento actual que nos ocupa.

En otras palabras, si tengo una colección de manzanas, para recuperar una manzana específica, tendría que decirle al enrutador "manzanas" qué manzana recuperar enviando la identificación de la manzana. Si ya tengo una Apple, entonces no se necesita una identificación.

notar las diferencias entre los dos mirando a lo que las acciones (o rutas) que tienen:

  • recursos: Índice, nuevo, crear, mostrar, editar, actualizar, destruir
  • de recursos: nueva, crear, mostrar, editar, actualizar, destruir

En su ejemplo:

  1. El controlador "geocodificador" es un recurso singular que puede usar para editar, crear, actualizar, etc.
  2. El controlador "mensajes", es un recurso plural que manejará las publicaciones genéricas entrantes que puede indexar, editar, crear..etc
+1

Mi confusión: ¿cuál es el punto en la creación de recursos singulares; digamos que hemos definido 'resource: geocoder'; ¿significa que vamos a tener un solo registro de 'geocodificador' en una 'tabla' completa llamada' geocoders'? – illusionist

+2

En el enlace al artículo (que se actualizó hace mucho tiempo desde que publiqué esto), dieron un buen ejemplo. Un recurso singular llamado/profile (en lugar de/profile: id), sería útil para mostrar siempre el perfil del usuario actualmente conectado. Por lo tanto, un geocodificador singular podría pertenecer a la ubicación de un usuario actual, mientras que los geocodificadores en plural podrían pertenecer a una colección de lugares cercanos. Depende de usted si desea incluir su propio código geográfico en esa colección. – sksallaj

8

http://guides.rubyonrails.org/routing.html#singular-resources

veces, usted tiene un recurso que los clientes siempre buscan sin referencia a un documento de identidad. Por ejemplo, le gustaría que/profile muestre siempre el perfil del usuario actualmente conectado. En este caso, puede usar un recurso singular para asignar/perfil (en lugar de/profile /: id) a la acción de mostrar .

Una buena manera de verlo es que el recurso no tiene acción de índice, ya que se supone que es solo uno.

3

Creo que solo la vista de índice.

También se han notificado problemas con el enrutamiento con el asistente de recursos y los ayudantes de formulario. Personalmente, yo uso la sintaxis:

resources :someresource, except: :index 

con el fin de evitar la reported bugs.

4

Recursos singulares:

A veces, usted tiene un recurso que los clientes siempre miran hacia arriba sin hacer referencia a un documento de identidad. Por ejemplo, desea que /profile muestre siempre el perfil del usuario actualmente conectado.

O Normalmente su-In conectado usuario actualmente pertenece a una sola organización, por lo que a su Goto/su página de perfil de la organización no puede haber dos rutas

#1 
/organizations/:id 

#2 
/organization #simply 

En este caso, la aplicación más adelante tiene más sentido; ¿No? se obtiene el objeto de organización de la asociación

# in organizations#show 
@organization = current_user.organization 

Para definir tales recursos singular utiliza resource método: Ejemplo

# in routes.rb 
resource :organization 

crea seis rutas diferentes en su aplicación, toda asignación al controlador Organizaciones:

enter image description here

mientras que usted define recursos plurales usando resources Método

resources :organizations 

enter image description here

Cuestiones relacionadas