Diferença de rotas Rails entre recurso e recursos

Rails fornece roteamento RESTful para recursos. As rotas podem definir recursos únicos ou recursos plurais para gerar rotas da aplicação.

Existe uma diferença lógica que deve ser considerada quando selecionamos resource ou resources ao gerar roteadores.

Uso de recursos em rotas Rails

Vejamos as rotas geradas quando usamos resources em rotas Rails.

resources :products

>

>

>

>

>

>

HTTP Verbo Caminho Controlador#Acção Utilizado para
GET /produtos produtos#index display uma lista de todos os produtos
GET /produtos/novo produtos#novo retornar um formulário HTML para criar um novo produto
POST /produtos produtos#criar criar um novo produto
GET /produtos/:id produtos#show exibir um produto específico
GET /produtos/:id/edit produtos#edit retornar um formulário HTML para editar um produto
PATCH/PUT /produtos/:id produtos#actualizar actualizar um produto específico
DELETE /produtos/:id produtos#destroy apagar um produto específico

Uso de recurso em rotas Rails

Vamos dar um exemplo de usuário profile para um usuário logado no website usando a aplicação Rails.O perfil do usuário é suposto ser uma entidade (recurso) a ser trabalhada quando o usuário estiver logado. Não queremos que o usuário final conheça o perfil ID do usuário. Assim,

  • Para ver o perfil, route deve ser algo como www.example.com/profile
  • Para editar o perfil, route deve ser algo como www.example.com/profile/edit

etc.

Podemos definir route para profile resource como dado abaixo.

resource :profile
HTTP Verbo Caminho Controlador#Acção Utilizado para
GET /profile/novo profiles#novo retornar um HTML formulário para criar um novo perfil
POST /profile profiles#criar criar um novo perfil
GET /profile profiles#show display a perfil específico
GET /profile/edit profiles#edit retornar um formulário HTML para editar um perfil
PATCH/PUT /profile profiles#update actualizar um perfil específico
DELETE /profile profiles#destroy delete um perfil específico

Vemos rotas de recursos singulares que não têm ID do recurso.Além disso, ele ainda direciona pedidos para o nome do controlador pluralizado.

Guias de encaminhamento sugerem:,

Por vezes, você tem um recurso que os clientes sempre procuram sem referenciar um ID. Por exemplo, você gostaria /profile para sempre mostrar o perfil do usuário atualmente logado. Neste caso, você pode usar um recurso singular.

Diferença entre recurso e recursos