| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 16:16:11
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
Boa tarde a todos. Tenho algumas dúvidas de iniciante que talvez já tenham sido resolvidas por vocês.
Estou iniciando um projeto em Rails em um local onde o pessoal que administra o banco de dados possui um padrão de nomenclatura para nomes de tabelas, colunas, etc. que difere daquele consagrado pelo framework.
Sendo assim, pergunto: existe alguma forma de usar outra convenção de nomes de objetos de banco de dados no Rails sem deixar de usar seus recursos? Por exemplo, gostaria de continuar aproveitando o poder das migrações porém seguindo outro padrão de nomes.
Outra coisa: se eu tiver um modelo com nome composto, como fazer o Rails tratar seu plural adequadamente? Como exemplo, supondo que eu tenha um modelo chamado TipoProduto, quero que seu plural seja TiposProduto e não TipoProdutos, como faz a pluralização do Rails.
Desde já grato pela atenção.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/06/2010 16:28:12
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
Sobre o uso de plural de uma olhada nesse link
http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html
e
http://softwareas.com/bitten-by-rails-pluralizationinflection
talvez isso ajude, acredito que isso ajude também na sua nomemclatura.
é trabalhoso usar Rails fora do padrão dele.
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2010 08:11:55
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
Beleza, o uso da classe Inflector resolve tranquilo o problema do plural de nomes compostos. Mas não enxergo como ele resolve o problema da nomenclatura.
O padrão que a equipe de banco de dados usa é o seguinte:
- os nomes dos objetos (tabelas, colunas) devem estar em maiúsculas;
- concatena-se ao nome da coluna um mnemônico representando o tipo de dados da coluna.
Como exemplo, tomemos a tabela abaixo:
Como mapear isso no model do Rails? Tentei usar os métodos set_table_name, set_primary_key... Mas quando rodo a migration, ele ainda cria os objetos seguindo o padrão do Rails.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 09:51:40
|
dlt
JavaEvangelist
![[Avatar]](/images/avatar/f8decd07ac3bcdb30bc816319f3287de.png)
Membro desde: 20/12/2007 16:30:29
Mensagens: 367
Localização: Belo Horizonte
Offline
|
Vê se é isso que vc precisa: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M001804
|
"It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?" - Alan Perlis |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 12:45:23
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
Olá dlt, obrigado pela ajuda mas como falei no post anterior, tentei usar esse método sem sucesso.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 14:12:55
|
dlt
JavaEvangelist
![[Avatar]](/images/avatar/f8decd07ac3bcdb30bc816319f3287de.png)
Membro desde: 20/12/2007 16:30:29
Mensagens: 367
Localização: Belo Horizonte
Offline
|
Oi, tnaires. Não tinha visto que vc já tinha tentado o set_table_name.
Acho que não entendi direito o seu problema. Pelo o que eu entendi, você precsa alterar o nome da tabela a ser criada na migration, usar um set_table_name no modelo criado e depois resolver os problemas de pluralizacão com inflectors.
Poderia descrever os passos que segue e os resultados que espera quando roda as migrations?
|
"It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?" - Alan Perlis |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 14:18:55
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
dlt wrote:Pelo o que eu entendi, você precsa alterar o nome da tabela a ser criada na migration, usar um set_table_name no modelo criado e depois resolver os problemas de pluralizacão com inflectors.
Nossa, realmente isso eu não tinha feito...
Tomemos como exemplo a tabela de usuários cuja estrutura mostrei num post anterior. Então preciso alterar o código da migration abaixo:
Para isso?
Desculpe a ignorância , achei que se eu configurasse tudo no model o Rails também "traduzisse" a migration.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 14:26:41
|
dlt
JavaEvangelist
![[Avatar]](/images/avatar/f8decd07ac3bcdb30bc816319f3287de.png)
Membro desde: 20/12/2007 16:30:29
Mensagens: 367
Localização: Belo Horizonte
Offline
|
O arquivo da migration já tinha sido gerado quando vc usou o script/generate model e não é editado só porque vc chamou um método no modelo.
|
"It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?" - Alan Perlis |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 14:33:17
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
tnaires wrote:
dlt wrote:Pelo o que eu entendi, você precsa alterar o nome da tabela a ser criada na migration, usar um set_table_name no modelo criado e depois resolver os problemas de pluralizacão com inflectors.
Nossa, realmente isso eu não tinha feito...
Tomemos como exemplo a tabela de usuários cuja estrutura mostrei num post anterior. Então preciso alterar o código da migration abaixo:
Para isso?
Desculpe a ignorância  , achei que se eu configurasse tudo no model o Rails também "traduzisse" a migration.
Na verdade não, o capslock não sever com SYMBOLS, vc tem que usar string mesmo aqlgo no estilo
vale ressaltar que você tera que criar a coluna ID_USUARIO manualmente também, por que o rails vai criar o campo somente id.
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 14:54:25
|
dlt
JavaEvangelist
![[Avatar]](/images/avatar/f8decd07ac3bcdb30bc816319f3287de.png)
Membro desde: 20/12/2007 16:30:29
Mensagens: 367
Localização: Belo Horizonte
Offline
|
Na verdade não, o capslock não sever com SYMBOLS
Funciona, sim.
vale ressaltar que você tera que criar a coluna ID_USUARIO manualmente também, por que o rails vai criar o campo somente id.
Isso. E ainda tem que usar o set_primary_key no modelo.
This message was edited 1 time. Last update was at 16/06/2010 14:56:15
|
"It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?" - Alan Perlis |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 15:01:00
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
dlt wrote:O arquivo da migration já tinha sido gerado quando vc usou o script/generate model e não é editado só porque vc chamou um método no modelo.
Shame on me
Na verdade, não esperava que o Rails reescrevesse o código, e sim, associasse o símbolo :nome ao campo "STR_NOME_USUARIO".
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 15:03:20
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline
|
OK pessoal, obrigado. Farei alguns testes e depois postarei aqui o resultado.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 01:26:46
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Não da pra alterar a convençãode nomes de objetos do banco de dados, você vai ter que configurar o nome de cada coluna e cada tabela para cada entidade/model
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
|
|