我正在尝试使用两者:only和:在Rails应用程序中调用to_xml调用中的选项。这是代码:
current_user.to_xml(
:include => :subscription,
:only => [:email, :username]
)
结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<username>cristi</username>
<email>cristi@example.com</email>
<subscription>
</subscription>
</user>
问题是订阅有更多字段,不包括在内。我假设它是因为:only
选项。
有没有办法克服这个问题(显示子订阅元素中的所有字段),而不在:except
中使用to_xml
作为选项?
我正在使用Rails 3。
答案 0 :(得分:1)
是的,你可以。它对我来说很完美。
>> u = User.first
>> puts u.to_xml(:only => %w( id name ))
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>Simone Carletti</name>
<id type="integer">1</id>
</user>
>> puts u.to_xml(:only => %w( id name ), :include => :domains)
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>Simone Carletti</name>
<id type="integer">1</id>
<domains type="array">
<domain>
<name>...</name>
<id type="integer">0</id>
</domain>
<domain>
<name>...</name>
<id type="integer">0</id>
</domain>
</domains>
</user>
确保:subscription
关联正确无误。如果它是一对多关联,则需要使用复数版本:subscriptions
。