Domanda

Non tocco mai route.rb oltre a chiamare map.root per impostare un percorso predefinito. Sono sempre stato contento di utilizzare gli URL del modulo ...

/controller/action/perhaps_an_id

e funziona benissimo.

Questo mi rende una persona cattiva? Mi sto perdendo qualcosa di assolutamente fantastico?

Cosa succede se provo ad adottare il design RESTful? Ciò significherebbe che devo modificare route.rb o potrei continuare a ignorarlo piacevolmente?

(Ho cercato di leggere questo argomento in The Rails Way ma era insopportabile.)

È stato utile?

Soluzione

Se generi le tue risorse con l'impalcatura predefinita, includerà anche il percorso riposante per te in route.rb.

Se non si utilizza l'impalcatura, il motivo per cui funziona è dovuto alle rotte predefinite in basso per impostazione predefinita:

    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

Ho seguito che è consigliabile rimuoverle per le applicazioni di produzione e assicurarsi invece che siano esposte solo le risorse che devono essere esposte. Con Rails 2.2 puoi persino limitare i metodi RESTful da map.resources di:

map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]

Ci sono anche tantissime cose interessanti che puoi fare con risorse nidificate, percorsi denominati, ecc. Hanno molti esempi nei documenti ( http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255& name = risorse )

Altri suggerimenti

Potresti anche voler creare percorsi personalizzati con nome per il tuo dipartimento marketing (ad esempio: mycoolsite.com/free-trial) che vanno a controller e azioni specifici, ecc.

Ryan Bates ha una serie di screencast che illustrano alcune delle cose interessanti che puoi fare con i percorsi: http: //railscasts.com/tags/14

Non passare al design RESTful non ti rende una persona cattiva e se non senti la necessità di cambiare continua a scrivere le tue app nel modo 1.x.

La maggior parte degli sviluppatori di Rails ha adottato REST e sembra esserne molto felice. Non penso che qui sia necessario ripetere tutti gli argomenti PRO REST.

È necessario aggiungere una riga per risorsa al file delle rotte come:

map.resources :posts

Se dovessi andare RESTful, sì, dovresti modificare route.rb e aggiungere le tue risorse come,

map.resources :your_resource

o se hai risorse nidificate,

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top