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? |

Pingback: Elvis Fernandes » Blog Archive » Gerando XML com vários models no Rails