Tôi có một số mô hình Ares (xem dưới đây) mà tôi đang cố gắng để sử dụng liên kết với (mà dường như được hoàn toàn không có cơ sở và có lẽ không thể nhưng tôi nghĩ rằng tôi muốn cung cấp cho nó một thử)Rails ActiveResource
Vì vậy, bên cạnh dịch vụ của tôi, đối tượng ActiveRecord tôi sẽ làm một cái gì đó giống như
render :xml => @group.to_xml(:include => :customers)
(thấy xml được tạo dưới đây)
Các mô hình Group và Khách hàng là HABTM
Trên mặt ARes của tôi, tôi hy vọng rằng nó có thể thấy thuộc tính x2 <customers>
xml và tự động điền thuộc tính .customers
của đối tượng Nhóm đó, nhưng phương thức has_many etc không được hỗ trợ (ít nhất là theo tôi có thể biết)
Vì vậy, tôi tự hỏi làm thế nào ARes hiện nó phản ánh trên XML để thiết lập các thuộc tính của một đối tượng. Trong AR ví dụ tôi có thể tạo ra một def customers=(customer_array)
và đặt nó bản thân mình, nhưng điều này dường như không làm việc trong ARES.
Một gợi ý tôi tìm thấy cho một "hiệp hội" là chỉ có một phương pháp
def customers
Customer.find(:all, :conditions => {:group_id => self.id})
end
Nhưng điều này có những bất lợi mà nó làm cho một cuộc gọi dịch vụ thứ hai để tìm kiếm những khách hàng ... không mát
Tôi muốn mô hình ActiveResource của mình thấy rằng thuộc tính của khách hàng trong XML và tự động điền vào mô hình của tôi. Ai có kinh nghiệm với cái này rồi nào??
# My Services
class Customer < ActiveRecord::Base
has_and_belongs_to_many :groups
end
class Group < ActiveRecord::Base
has_and_belongs_to_many :customer
end
# My ActiveResource accessors
class Customer < ActiveResource::Base; end
class Group < ActiveResource::Base; end
# XML from /groups/:id?customers=true
<group>
<domain>some.domain.com</domain>
<id type="integer">266</id>
<name>Some Name</name>
<customers type="array">
<customer>
<active type="boolean">true</active>
<id type="integer">1</id>
<name>Some Name</name>
</customer>
<customer>
<active type="boolean" nil="true"></active>
<id type="integer">306</id>
<name>Some Other Name</name>
</customer>
</customers>
</group>