Cuál es la diferencia entre resource
y resources
en los carriles de enrutamientoDiferencia entre recursos y recursos en el enrutamiento de rieles?
resource :geocoder
y
resources :posts
¿Cuál es la diferencia real entre ellos?
Cuál es la diferencia entre resource
y resources
en los carriles de enrutamientoDiferencia entre recursos y recursos en el enrutamiento de rieles?
resource :geocoder
y
resources :posts
¿Cuál es la diferencia real entre ellos?
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:
En su ejemplo:
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.
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.
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:
mientras que usted define recursos plurales usando resources
Método
resources :organizations
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
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