Pergunta

Eu nunca tocar routes.rb além chamando map.root para definir uma rota padrão. Eu sempre fui conteúdo para URLs uso da forma ...

/controller/action/perhaps_an_id

e funciona bem.

Isso faz de mim uma pessoa má? Am I perdendo algo totalmente incrível?

E se eu tentar adoptar projeto RESTful? Será que isso significa que eu tenho que editar routes.rb ou eu poderia continuar a ignorá-lo agradavelmente?

(Eu tentei ler-se sobre este tema em The Way Rails mas era insuportável.)

Foi útil?

Solução

Se você gerar seus recursos com o andaime padrão, então ele vai mesmo incluir o encaminhamento repousante para você em routes.rb.

Se você não estiver usando o andaime em seguida, a razão pela qual ele está trabalhando é por causa das rotas padrão na parte inferior por padrão:

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

Eu tenho acompanhado que melhor prática de remover estes para aplicações de produção e, em vez se certificar de que apenas os recursos que precisam ser expostos estão expostos. Com Rails 2.2 você pode até limitar os métodos RESTful a partir map.resources por:

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

Há também toneladas de coisas legais que você pode fazer com recursos aninhados, rotas mencionadas, etc. Eles têm um monte de exemplos nos docs ( http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255&name= recursos )

Outras dicas

Você também pode querer fazer rotas personalizado nomeado para o seu departamento de marketing (por exemplo: mycoolsite.com/free-trial) que vão para os controladores e ações específicas, etc.

Ryan Bates tem uma série de screencasts que passar por cima de algumas das coisas legais que você pode fazer com rotas: http: //railscasts.com/tags/14

Não tendo ligado ao design RESTful não faz de você uma pessoa ruim e se você não sentem necessidade de mudança continuar a escrever seus aplicativos da maneira 1.x.

A maioria dos desenvolvedores Rails adotou REST e parece ser muito feliz com isso. Eu não acho que há uma necessidade aqui para repetir todos os argumentos pró REST.

Você precisa adicionar uma linha por recurso para suas rotas de arquivos, como:

map.resources :posts

Se você fosse para ir RESTful, sim, você teria que editar routes.rb e adicionar seus recursos como,

map.resources :your_resource

ou se você tiver recursos aninhados,

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top