Qual è la differenza tra il resource
e resources
in rotaie di routingDifferenza tra risorse e risorse nell'instradamento delle rotaie?
resource :geocoder
e
resources :posts
Ciò che è reale differenza tra loro?
Qual è la differenza tra il resource
e resources
in rotaie di routingDifferenza tra risorse e risorse nell'instradamento delle rotaie?
resource :geocoder
e
resources :posts
Ciò che è reale differenza tra loro?
In sostanza, le risorse di routing si trovano quando le risorse danno capacità di azione a un controller.
http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use
Se una delle risorse pluralizzato è usato come un modo per gestire le richieste generiche su qualsiasi elemento, quindi una risorsa singolare è un modo di lavorare sulla voce corrente a portata di mano.
Quindi, in altre parole, se ho una raccolta di mele, per recuperare una mela specifica, dovrei dire al router "Mele" quale mela recuperare tramite l'invio dell'ID della mela. Se ho già una mela, non è necessario un ID.
Avviso le differenze tra i due, cercando in quali azioni (o delle vie) hanno:
Nel tuo esempio:
http://guides.rubyonrails.org/routing.html#singular-resources
A volte, si dispone di una risorsa che i clienti cercano sempre senza riferimento a un ID. Ad esempio, ti piacerebbe/profilo per mostrare sempre il profilo dell'utente attualmente connesso. In questo caso, è possibile utilizzare una risorsa singolare per mappare/profilo (piuttosto che/profilo /: id) all'azione dello spettacolo .
Un buon modo per vederlo è che la risorsa non ha un'azione indice, dal momento che si suppone che sia solo una.
penso solo alla vista indice.
inoltre sono stati segnalati problemi con il routing con l'helper di risorse e gli helper di moduli. Personalmente, io uso la sintassi:
resources :someresource, except: :index
al fine di evitare il reported bugs.
Risorse Singular:
A volte, si dispone di una risorsa che i clienti cercano sempre senza riferimento a un ID. Ad esempio, ti piacerebbe che /profile
mostrasse sempre il profilo dell'utente attualmente connesso.
Oppure, normalmente l'utente-in registrati attualmente appartiene ad una singola organizzazione, per così goto la sua pagina di profilo/organizzazione non ci possono essere due percorsi
#1
/organizations/:id
#2
/organization #simply
Qui, l'attuazione in seguito ha più senso; non è? si ottiene l'oggetto organizzazione dall'associazione
# in organizations#show
@organization = current_user.organization
Per definire tale risorsa singolare si utilizza resource
metodo: Esempio
# in routes.rb
resource :organization
crea sei percorsi diversi nella vostra applicazione, tutta la mappatura al controller Organizzazioni:
considerando che si definiscono più risorse utilizzando resources
Metodo
resources :organizations
La mia confusione: che cosa è il punto nella creazione di risorse singolari; diciamo che abbiamo definito 'resource: geocoder'; vuol dire che avremo un singolo record 'geocoder' in un intero' tavolo' chiamato 'geocoder '? – illusionist
Nel link all'articolo (che è stato aggiornato molto tempo fa da quando ho postato questo), in realtà hanno dato un buon esempio. Una risorsa singolare chiamata/profile (anziché/profile: id), sarebbe utile per mostrare sempre il profilo dell'utente attualmente connesso. Quindi un geocoder singolare potrebbe appartenere alla posizione di un utente corrente, dove i geocoder plurali potrebbero appartenere a una raccolta di luoghi vicini. Spetterà a te se vuoi includere il tuo geocode in quella raccolta. – sksallaj