2009-03-25 13 views
1

私は2つのモデルを持っています:会社とユーザーはhas_and_belongs_to_many関係を持っています。私は私のlookup_usersメソッドを呼び出すときRails ActiveResource HABTM戻り値

が、もう一方の端には、返されたvalがある唯一の問題はされ
def users 
    @company = Company.find(params[:id], :include => [:users]) 
    render :xml => @company.users.to_xml(:include =>[:companies]) 
end 

私は、会社のすべてのユーザーを取得するための方法でアクティブなリソースを使用しています配列の会社オブジェクトそれぞれが1つの会社属性を持つCompanyオブジェクトを持ち、それぞれが1つの会社属性を持ちます。以下の出力を参照してください。

返品によって明示的にオブジェクトタイプを設定できるアクティブリソース?

私のサービスの@ company.users.to_xmlを呼び出すと、通常のように見えるxmlがレンダリングされるので、それは奇妙です。「<users type='array'>」に注意してください。返されるときは、会社オブジェクトです。

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<users type=\"array\">\n <user>\n < 

上記のサービスコールの戻り値: (RDB:1)頁のユーザー

[#<AsClient::Company:0x1959628 @attributes= {"work_phone"=>nil, 
    "city"=>nil, 
    "fax_number"=>nil, 
    "company"=>nil, 
    "updated_at"=>Wed Mar 25 21:05:43 UTC 2009, 
    "postal_code"=>nil, 
    "title"=>nil, 
    "the_parent_record_id"=>"650", 
    "hashed_password"=>"d80052727e9719113277bcc712d647aedefaff4b", 
    "last_logged_into"=>nil, 
    "last_seen_at"=>nil, 
    "customers"=> 
    [#<AsClient::Company:0x19568c4 
     @attributes= 
     {"name"=>"hmvc0joq", 
     "updated_at"=>Wed Mar 25 21:05:43 UTC 2009, 
     "main_contact"=>nil, 
     "id"=>650, 
     "customer_id"=>"650", 
     "deleted"=>nil, 
     "deleted_by"=>nil, 
     "user_id"=>"3263", 
     "created_at"=>Wed Mar 25 21:05:43 UTC 2009, 
     "active"=>nil}, 
     @prefix_options={}>], 
    "created_by"=>"AsTesting", 
    "password_salt"=>"m8j35JAnpd0IlllSHDCfd0BE5R1UHoT1", 
    "country"=>nil, 
    "activation_code"=>"8xB2J7LL3tQuK2Z9I1AKhAcotaSp8zgz", 
    "id"=>3263, 
    "updated_by"=>nil, 
    "password_reset_code"=>nil, 
    "address_1"=>nil, 
    "home_phone"=>nil, 
    "deleted"=>false, 
    "address_2"=>nil, 
    "deleted_by"=>nil, 
    "first_name"=>"Joe", 
    "last_name"=>"Test", 
    "province"=>nil, 
    "mobile_phone"=>nil, 
    "suffix"=>nil, 
    "alt_email"=>nil, 
    "created_at"=>Wed Mar 25 21:05:43 UTC 2009, 
    "email"=>"[email protected]", 
    "active"=>false, 
    "middle_name"=>nil}, @prefix_options={}>] 

答えて

0

私は間違いなく私の問題を発見しました。含ま=> [::会社私のクライアントは、私はより多くの睡眠

0

私は本当にあなたの問題が何であるかを理解していません。あなたの例では@companyはオブジェクトですが、@ company.usersはユーザオブジェクトの配列です。

@company.users.to_xml(:include =>[:companies]) 

を、これはおそらく、ユーザーの配列をレンダリングすると、すべてのユーザーのために、それは企業の配列が含まれます:あなたが呼び出す

+0

サービス側では、company.users.to_xml @(必要明らかに会社のオブジェクトを返します

users = Company.find(:all, :params => {:id => company_id}, :from => :users) 

...

を呼んでいます])は、xmlをユーザーの配列としてレンダリングします。しかし、クライアント側では、私はこの応答を受け取ったとき、今は企業の配列です。上記のコードを参照してください[# brad

+0

もう一度、私は突然の会社を得る理由はわからないユーザーの配列が欲しい、私はこの呼び出しで応答しています: レンダリング:xml => @ company.users.to_xml(:include => [:companies]) – brad

関連する問題