2011-08-31 2 views
2

나는 Rails 앱에서 to_xml 호출 옵션과 : include 옵션을 모두 사용하려고합니다. 여기 코드는 다음과 같습니다어떻게 사용할 수 있습니까? with : with : with_xml in Rails 응용 프로그램과 함께 사용 하시겠습니까?

current_user.to_xml(
    :include => :subscription, 
    :only => [:email, :username] 
) 

이의 결과는 뭔가를해야만 같다 :

<?xml version="1.0" encoding="UTF-8"?> 
<user> 
    <username>cristi</username> 
    <email>[email protected]</email> 
    <subscription> 
    </subscription> 
</user> 

문제는 가입이 포함되지 않은 더 많은 필드를 가지고있다. 나는 :only 옵션으로 가정합니다.

to_xml에서 옵션으로 :except을 사용하지 않고이를 극복 할 수있는 방법이 있습니까?

레일 3을 사용 중입니다.

답변

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을 사용해야합니다.

+0

이것은': only' 옵션과 일치하는 필드들만': include'd 연관으로부터 출력합니다. 나는 OP가 '구독'의 필드 이름에 상관없이'u.email','u.username' 및'u.subscriptions'을 모두 출력하려고한다고 생각합니다. – Chowlett

+0

... 나는 이것이 틀린 것으로 표시 했으므로 분명히 잘못되었습니다! – Chowlett