Existe alguma desvantagem em usar nomes singulares para controladores e auxiliares? Nada parece depender disso. Parece até que os ajudantes não precisam fazer a mesma escolha sobre o singular versus o plural que seus controladores correspondentes, pelo menos de acordo com minha experimentação limitada. Isso é verdade?
ruby-on-rails
naming-conventions
allyourcode
fonte
fonte
Respostas:
Definitivamente plural .
Com roteamento tranquilo e um controlador único
Controlador:
Rotas:
Usando um controlador plural
Controlador:
Rotas:
rails generate controller --help
tem exemplos plurais:fonte
Usar nomes plurais para controladores é apenas uma convenção.
Nomes plurais geralmente soam mais naturais (especialmente para controladores que estão ligados diretamente a um modelo específico: Usuário -> Usuários, etc.), mas você pode usar o que quiser.
Quanto aos auxiliares, todos os auxiliares estão disponíveis para todos os controladores por padrão, então, tecnicamente, como você nomeia seus auxiliares não importa de forma alguma. É apenas outra convenção manter as funções auxiliares de um controlador em um auxiliar com o mesmo nome do controlador.
fonte
Um modelo é singular porque faz referência a um único objeto, como usuário. Um controlador é plural porque são os controles (métodos) para a coleção de usuários. Como alguém nomeia as rotas depende do desenvolvedor individual. Nunca tive um usuário reclamando que um URL para uma solicitação da web é singular ou plural. O resultado final é manter uma convenção comum para contribuidores atuais e futuros, ao mesmo tempo em que atende exibições de páginas de qualidade ou solicitações de API para os usuários finais.
fonte
Você tem uma explicação muito completa nos guias do Rails: http://edgeguides.rubyonrails.org/routing.html#resource-routing-the-rails-default
fonte
É a convenção do Rails que um controlador lida com um modelo, se uma ou mais instâncias desse modelo podem existir durante o tempo de execução. No entanto, você pode ter uma aplicação Rails onde (alguns dos) controladores (e as visualizações associadas) não estão associados a nenhum modelo em particular, mas sim um conjunto mais complexo de funcionalidades. Nesse caso, a pluralização automática não faz sentido.
O aplicativo Rails no qual estou trabalhando atualmente se encaixa nesta categoria, e é simplesmente uma irritação para mim que Rails espere que os identificadores que eu defino como singulares em um lugar sejam usados em suas formas plurais em outros lugares. Por exemplo, posso querer definir algo assim em
config/routes.rb
:e quero que um controlador
DashboardController
exiba informações resumidas sobre certos aspectos do aplicativo, reunindo informações de mais de uma tabela de banco de dados. Portanto, aqui,Dashboard
não se refere a nenhum modelo da aplicação, e seria estranho ter o nome do controladorDashboardsController
.Encontrei uma boa solução para a irritação da pluralização automática nesta resposta . Resumindo, edite o arquivo
config/initializers/inflections.rb
e adicione as palavras que você não deseja que sejam automaticamente pluralizadas a esta definição:fonte
A convenção de nomenclatura de controladores em Rails favorece a pluralização da última palavra no nome do controlador, embora não seja estritamente necessária (por exemplo
ApplicationController
).Por exemplo,
ClientsController
é preferível aClientController
,SiteAdminsController
é preferível aSiteAdminControlle
r ouSitesAdminsController
, e assim por diante.Seguir esta convenção permitirá que você use os geradores de rota padrão (por exemplo, recursos, etc) sem a necessidade de qualificar cada um
:path
ou:controller
, e manterá o uso de ajudantes de URL e caminho consistente em toda a sua aplicação.Ref: Convenção de Nomenclatura de Controladores - Documento Rails
fonte
Eu me sinto melhor quando uso o singular para o nome do controlador
fonte
Se o controlador for um recurso, deve ser plural ...
Por exemplo
Controlador
Modelo
Mas você pode usar nomes de controladores singulares quando não tiver modelos correspondentes como
fonte
Usar plurais soa melhor, e se você tiver um controlador que lida com um recurso singular, ou seja, usuário, você ainda pode nomear a url / usuário.
Com os ajudantes, muitas vezes não há necessidade de ter um ajudante para cada controlador, e muitas vezes haverá métodos auxiliares que você pode usar ascorss múltiplos controladores e, em vez disso, espalhar todos eles por meio de seu auxiliar de aplicativo, você pode colocá-los em ajudantes personalizados, como por exemplo, layout_helper ou qualquer outro arquivo bem nomeado.
fonte