Pergunta

Desde o início, Rails tem tido problemas com modelos namespaced. Conforme o tempo passava, praticamente todo mundo desistiu de usá-lo. Eu incluído.

Com Rails 2.3, eu gostaria de uma atualização sobre a situação. Específicos perguntas que eu tenho em mente são:

  • em primeiro lugar, é bom ir?
  • nomeação mesa, o que descarta a seguir?
  • associações, como declará-los com o menor verbosidade? como nomear colunas de chave estrangeira?
  • auto-exigindo, ele funciona se você colocar os arquivos de modelo em um subdir combinando o namespace? ou, como nomear e onde colocar os arquivos?
  • geração, faz o gerador modelo de alças namespaces com sucesso e corretamente?
  • geração, como sobre o gerador de cadafalso, que inclui controladores?
  • eventuais incompatibilidades / quirkinesses um deve estar ciente de?
Foi útil?

Solução

A melhor writeup que eu vi sobre a questão é de estritamente Untyped. Para meu conhecimento 2.3 não resolveu todos os problemas, o que significa que eles ainda estão pouco fiáveis.

Outras dicas

Recentemente, tivemos uma grande discussão sobre isso dentro de nossa empresa. Eu acho que no final do dia, nós entendemos que se você pode tabelas não namespace dentro de um banco de dados, não faz sentido para namespace os modelos. Nós resolvida prefixo nossos modelos (User, UserAddress, UserEmailAddresses) e colocá-los para o diretório de usuários, em seguida, usando:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

para carregar os modelos. Para controlar a verbosidade em nossos modelos, fazemos isso com freqüência:

has_many :addresses, :class_name => "UserAddress"

Ao gerar, nós criá-lo como se não houvesse namespace (script / gerar UserAddress modelo), em seguida, copiá-lo manualmente para o diretório do usuário.

encolher de ombros. Eu acho que, no final, tudo isso realmente lhe dá é uma estrutura de diretórios limpa, que na verdade é mais problema para um usuário VIM como eu, mas agradável para TextMaters.

Eu ainda iria ficar longe dela. Qualquer coisa ganhou (o que eu não tenho certeza o que isso honestamente ser) com certeza gostaria de ser perdida quando você considerar o aborrecimento e perda de concisão e clareza em seu código.

Meu aplicativo mais recente tem 87 recursos, e inclui recursos administrativos em todo o lugar. Eu não vejo nenhuma necessidade de namespacing, IMHO.

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