사용자 정보를 반환하는 웹 서비스를 작성 중입니다. 컨트롤러에서는 간단히 render :xml => user and return
입니다. 그러나 내 사용자 모델의 모든 필드가 반환되는 것은 아니며 포함하거나 제외 할 필드를 나타내는 모델에는 아무 것도 표시되지 않습니다.레일스의 기본 JSON/XML 직렬화에 포함 된 필드 변경하기
모델 :
class User < ActiveRecord::Base
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name
end
예 : 최소한
<?xml version="1.0" encoding="UTF-8"?>
<user>
<last-name>Me</last-name>
<email>[email protected]</email>
<first-name>Me</first-name>
</user>
, 나는 id
을 포함해야합니다 : 현재 동일한 사용자에 대해 반환 render
내 어떤
irb(main):003:0> @user = User.find(3)
=> #<User id: 3, email: "[email protected]", encrypted_password: <redacted>, reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 11, current_sign_in_at: "2011-08-24 22:50:44", last_sign_in_at: "2011-08-24 06:18:41", current_sign_in_ip: "1.2.3.4", last_sign_in_ip: "1.2.3.4", created_at: "2011-08-23 17:09:28", updated_at: "2011-08-26 04:01:01", controller: false, admin: false, chargify_customer_id: 1234, chargify_subscription_id: 1234, first_name: "Me", last_name: "Me", chargify_subscription_state: "active">
들; 전반적으로, 나는 당신이 포함 된 것을 통제하는 방법과 그렇지 않은 것을 통제하는 방법을 더 잘 이해하고 싶습니다.
감사 :
현재 직렬화에 대한 자세한 내용을보실 수 있습니다. 내 모델에 as_xml을 배치하지 못했습니다. 디버깅 로거를 추가하여 확인되지 않았습니다. 내 재정의를 재정의 한 기분 전환 용 as_xml 재정의가 있습니다. ;-) 그러나 제안 된대로 self.to_xml을 직접 호출하면 옵션 해시를 사용하여 모델에 to_api 메서드를 추가 했으므로 제대로 작동하는 것 같습니다. – tkrajcar