2011-10-05 35 views
5

我是一種新的backbone.js,我很努力地用belongs_to關係獲取一個集合。處理與backbone.js的belongs_to關係

我想獲取用戶列表(用戶/ GET),我想用belongs_to關聯來顯示它們。

例如顯示用戶的公司名稱。有人知道一個解決方案?

我使用Ruby on Rails的3使用CouchDB

用戶控制器

def index 
    User.all 
end 

骨幹收集

class UserCollection extends Backbone.Collection 

    url: -> 
    app.routes.users_url 

    model: User 

骨幹模型

class User extends Backbone.Model 

    idAttribute: '_id' 

    defaults: { 
    "email": null 
    "mobile": null 
    "loc": null 
    } 

    url: -> 
    app.routes.users_url + '/' + (@id || '') 

我想展示COM帕尼名像這樣...

%script{:id => "user-resource-template", :type => "text/template"} 
    %td= check_box_tag "select", 1, false, :class => "checkbox", "data-id" => raw("<%= _id %>") 
    %td <%= name %> 
    %td <%= email %> 
    %td <%= company.name %> 
+0

那麼有什麼不能正常工作? –

+0

那麼屬於關係不是工作,這是課程的邏輯,因爲模型沒有任何關係。所以我不知道如何打印company.name –

回答

4

Backbone.js的似乎並不支持關係,因爲在official documentation他們沒有提及。

儘管如此,還是有一些Backbone插件增加了對關係的支持,比如Backbone-relationalligament.js。我沒有測試過它們,但Backbone-relational似乎非常活躍。

更新

要延遲加載的集合和防止每個關係一個取,看到Backbone.RelationalModelfetchRelated方法:

從服務器獲取模型的 屬性被引用的那款,但尚未找到/創建。這可以專門用於延遲加載場景,使用 。

默認情況下,將針對要從服務器獲取的每個附加模型 觸發單獨的請求。但是,如果您的服務器/ API 支持它,則可以通過 指定您調用fetchRelated的關係的collectionType來獲取一個請求中的一組模型。 collectionType應該有一個重寫的 url(模型)方法,允許它爲一個模型數組構造一個url 。舉例來說,請參見 Backbone.Relation optionsBackbone-tastypie頂部的示例。

+0

是的,看起來不錯,但這意味着我必須對集合中的每一行做一個請求。所以這意味着對正常用戶索引操作發出20個請求。 –

+0

更新了我的答案,這是你在找什麼? –

+0

謝謝你。這確實是正確的答案。我會以另一種方式做,因爲服務器有一些原因,但這是正確的答案。謝謝! –