Alguém por favor pode me explicar em termos claros e leigos que o negócio é com recursos mapeados e rotas nomeadas em Ruby on Rails?

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

Pergunta

Eu estive usando Ruby, pela primeira vez em um projeto no meu trabalho, por isso estou ainda um pouco aprendendo as cordas (e amando cada minuto disso).

Enquanto eu entendo o ponto das funções map.connect no arquivo route.rb, eu não entendo os "recursos" e recursos "rota nomeada" de Rails. Eu tenho meus Rails livro aqui e lê-lo várias vezes, mas eu ainda não entendo. As rotas nomeadas eu meio que recebem - Eu acho que eles são ou regras, quer explicitamente definido, ou calculada por um bloco de código, mas os recursos são um completo mistério para mim; a única coisa que eu brilhava rom eles é que você só precisa-los se quiser algum do material legal para o trabalho, como ser capaz de chamar 'resource_path' (e sua incrível família relacionada de métodos).

Meu projeto atual tem:

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

.. mas meu livro Rails tem esse "has_many" awesome meio e "apenas" tipo hashes e parâmetros pendurados fora deles e eu não posso trabalhar para fora exatamente quando devo usá-los, nem o que o benefício é.

Alguém pode me definir reta?

Foi útil?

Solução

rotas nomeadas são apenas isso; uma rota com um nome ligado, de modo que você pode facilmente se referir a ele quando você quer gerar uma URL. Entre outras coisas, ele pode eliminar a ambiguidade.

Um recurso é basicamente uma 'coisa' que você quer ter rotas para manipular. Quando você define que 'seções' é um recurso, o que você está fazendo é dizer "eu quero uma rota para obter todas as seções. Eu quero uma rota para adicionar uma nova seção. Eu quero uma rota para editar uma seção existente. I quer uma rota para apagar uma seção ". Esse tipo de coisas. Estas rotas apontam para nomes de métodos padronizados como index, new, edit, e assim por diante. Cada uma dessas rotas terá um nome atribuído com base no que é; para que haja agora uma rota nomeada 'edit_section'.

O parâmetro :has_many permite dizer que um certo tipo de coisa tem sub-coisas. Por exemplo, você pode dizer map.resources :sections, :has_many => [:questions]. Isto significa que uma questão pertence a uma seção, e isso será refletido na url e a rota. Você deseja obter urls como '/sections/27/questions/12' e rotas nomeadas como 'section_questions'.

O parâmetro :only diz "só fazem rotas para essas ações"; você pode usá-lo se você só quer permitir listar, visualizar e adicionar itens, não editar ou apagar.

Outras dicas

Rails Guia de Encaminhamento vai lhe dar uma boa explicação sobre como texto simples como você pode ter. Só sei que uma rota recurso == rota RESTful e você está pronto para ir.

Todos nós lutou com recursos compreensão e descansar quando DHH introduziu para a comunidade Rails na primeira RailsConf em 2006, por isso não é de saber que você tem dificuldade em apreender o conceito.

Admito que é muito melhor e mais explicações up-to-date dos conceitos hoje, mas naquela época, logo depois de David keynote, eu escrevi um Blog Post em que eu, do debate com outros participantes da conferência, tentaram compreender e explicar. Ele pode ajudá-lo, uma vez que não dão como certo que você sabe tudo sobre o descanso como artigos mais recentes fazer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top