Qualcuno può spiegarmi in termini chiari e profani chi è l'accordo con risorse mappate e percorsi denominati in Ruby on Rails?

StackOverflow https://stackoverflow.com/questions/1801756

Domanda

Ho usato Ruby per la prima volta su un progetto nel mio lavoro, quindi sto ancora imparando un po 'le corde (e ne adoro ogni minuto).

Mentre capisco il punto delle funzioni map.connect nel file route.rb, non capisco le " risorse " e " route denominata " caratteristiche di Rails. Ho il mio libro Rails qui e lo leggo più volte, ma ancora non lo capisco. Le rotte nominate che ottengo - penso che siano o regole, esplicitamente definite o calcolate da un blocco di codice, ma per me le risorse sono un mistero completo; l'unica cosa che ho brillato di loro è che AVETE BISOGNO di loro se volete che alcune delle cose interessanti funzionino, come essere in grado di chiamare "percorso_risorse" (e la sua fantastica famiglia di metodi correlati).

Il mio progetto attuale ha:

map.resources :application_forms
map.resources :sections
map.resources :questions
map.resources :seed_answers
map.resources :question_types
map.resources :form_questions
map.resources :rules
map.resources :form_rules

..ma il mio libro di Rails ha questo fantastico tipo di "has_many" e " solo " tipo hash e parametri che li appendono e non riesco a capire esattamente quando dovrei usarli, né quale sia il vantaggio.

Qualcuno può sistemarmi?

È stato utile?

Soluzione

I percorsi nominati sono proprio questo; un percorso con un nome allegato, in modo da poterlo facilmente fare riferimento quando si desidera generare un URL. Tra l'altro, può eliminare l'ambiguità.

Una risorsa è fondamentalmente una "cosa" che si desidera avere percorsi da manipolare. Quando definisci che 'sezioni' è una risorsa, quello che stai facendo è dire " Voglio un percorso per ottenere tutte le sezioni. Voglio un percorso per aggiungere una nuova sezione. Voglio un percorso per modificare una sezione esistente. Voglio un percorso per eliminare una sezione. & Quot; Questo genere di cose. Queste rotte puntano a nomi di metodi standardizzati come index , new , edit e così via. Ognuno di questi percorsi avrà un nome assegnato in base a ciò che è; quindi ora esiste una route denominata 'edit_section' .

Il parametro : has_many ti permette di dire che un certo tipo di cose ha cose secondarie. Ad esempio, puoi dire map.resources: sezioni,: has_many = > [: Domande] . Ciò significa che una domanda appartiene a una sezione e questo si rifletterà nell'URL e nel percorso. Otterresti URL come '/ sezioni / 27 / questions / 12' e percorsi denominati come 'section_questions' .

Il parametro : only dice " crea percorsi solo per queste azioni " ;; potresti usarlo se desideri consentire la quotazione, la visualizzazione e l'aggiunta di elementi, non la modifica o l'eliminazione.

Altri suggerimenti

Onestamente la Rails Routing Guide ti darà una buona spiegazione in termini di Puoi prendere. Sappi solo che un percorso di risorse == RESTful route e sei a posto.

Abbiamo lottato tutti per comprendere le risorse e il REST quando DHH lo ha presentato alla comunità Rails al primo RailsConf nel 2006, quindi non c'è da meravigliarsi se si hanno difficoltà a comprendere il concetto.

Ammetto che oggi ci sono spiegazioni molto migliori e più aggiornate dei concetti, ma allora, subito dopo il keynote di David, ho scritto un post di blog in cui io, dalla discussione con altri partecipanti alla conferenza, ho cercato di capirlo e spiegarlo. Potrebbe esserti utile, dato che non è scontato che tu sappia tutto su REST come fanno gli articoli più recenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top