У меня есть две модели: компания и пользователь имеют отношение has_and_belongs_to_many.Rails ActiveResource Возвращаемые значения HABTM
Я использую активный ресурс с методом, чтобы получить все пользователи компании:
def users
@company = Company.find(params[:id], :include => [:users])
render :xml => @company.users.to_xml(:include =>[:companies])
end
Единственная проблема, на другом конце, когда я называю свой метод lookup_users, возвращаемый вал является массива Объекты компании, каждый с одним атрибутом компании, в отличие от массива объектов пользователя, каждый с одним атрибутом компании. См. вывод ниже:
Кто-нибудь знает, как я могу явным образом установить тип объекта, activeresource?
Это странно, потому что вызов @ 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={}>]
На стороне службы, @ company.users.to_xml (: включить => [: компании ]) отображает xml как массив пользователей. Однако на стороне клиента, когда я получаю этот ответ, теперь это массив компаний. См. Приведенный выше код [#
brad
Опять же, мне нужен массив пользователей, не уверенный, почему я внезапно получаю компании, я отвечаю на этот звонок: render: xml => @ company.users.to_xml (: include => [: компании]) – brad