Gerando um XML a partir de um modelo no Rails

Quando você usa Ruby on Rails e precisa gerar um XML dos dados do banco, temos o método to_xml que faz tudo o que precisamos, com algumas opções que facilitam a nossa vida.

Se você estiver usando to_xml para gerar um XML que vai ser consumido por uma aplicação Flex, pode ter problemas com os campos cujos nomes possuem _ (underline), o que é muito comum, como nos casos dos campos usados para os relacionamentos entre as tabelas, como model_id, por exemplo. Nesse caso, você pode não conseguir acessar essa propriedade no Flex, porque o to_xml transforma todos os underscores em hífens.

Para resolver esses e outros problemas, temos algumas opções à mão, que listo a seguir:

  • dasherize – informa se o Rails deve ou não trocar underscores por hífens (resolvendo o problema citado anteriormente)
  • skip_instruct – gera o XML sem a linha com instruções de processamento (aquela primeira linha que é mais ou menos assim: <?xml version="1.0" encoding="utf8"?>)
  • except – informa quais campos do modelo não devem ser incluídos no XML
  • include – informa quais modelos relacionados devem ser incluídos no XML
  • methods – inclui os métodos do seu modelo ao XML (sabe aquele método que você criou pra calcular a idade? Então, aquele, que por padrão não seria incluído no XML)

Exemplos de utilização:

User.find(:all).to_xml(:dasherize => false) # Gera o XML com underscores, e não com hífens
User.find(:all).to_xml(:skip_instruct)
User.find(:all).to_xml(:except => [:id, :created_at])
User.find(:all).to_xml(:include => :posts)
User.find(:all).to_xml(:methods => :idade)

Para maiores detalhes, consulte a documentação (ou deixe um comentário ;-) ).


Poderia avaliar este artigo, por favor?

1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (Nenhum voto)
Loading ... Loading ...

Posts relacionados