segunda-feira, 22 de setembro de 2008

Ruby on Rails - Classe Text

Como comentei no post anterior, no Spint 4 tive algumas dificuldades com o Ruby on Rails, provavelmente por ser iniciante.

Pelo menos 3 dias do Sprint foi gasto tentando resolver o problema. Muita pesquisa e testes.

Basicamente no modelo do projeto há duas tabelas, uma "sections" e outra "texts". Pelo modelo, uma "seção" pode ter vários "textos". Na camada modelo (app/model) estava configurado assim:


class Section < ActiveRecord::Base
has_many :texts
end



class Text < ActiveRecord::Base
belongs_to :section
end



No Ruby on Rails uma das formas de capturar coleções nestes casos é como visto abaixo:

@texts = @section.texts

Porém ao tentar capturar a coleção "texts" gerava erro. Depois de muitas pesquisas e tentativas pensei: será que "text" e/ou "texts" era uma palavra reservada? Não encontrei nada dizendo que não poderiam ser usados tabelas no modelo com esses nomes. Mas mesmo assim, como último recurso, experimentei alterar a tabela "texts" para "articles". E funcionou!!!! O erro parou de ocorrer.

Alterei o nome da tabela de "texts" para "articles". E o código para capturar a coleção para:

@articles = @section.articles

Conclusão....creio que "text/texts" devem ser palavras reservadas, ou geram algum tipo de conflito na linguagem com o tipo de dados "text".

Espero que essa informação seja útil para quem estiver passando por problema semelhante.

Nenhum comentário: