Ruby on rails 处理与backbone.js的关系
我对backbone.js有点陌生,我正在努力获取一个具有归属关系的集合 我想获取一个用户列表(users/GET),并且我想显示所有用户,但不包括一个属于关联的用户 例如,显示用户的公司名称。有人知道解决办法吗 我正在将RubyonRails3与CouchDB一起使用 用户控制器 主干集 主干模型 我想这样显示公司名称Ruby on rails 处理与backbone.js的关系,ruby-on-rails,backbone.js,Ruby On Rails,Backbone.js,我对backbone.js有点陌生,我正在努力获取一个具有归属关系的集合 我想获取一个用户列表(users/GET),并且我想显示所有用户,但不包括一个属于关联的用户 例如,显示用户的公司名称。有人知道解决办法吗 我正在将RubyonRails3与CouchDB一起使用 用户控制器 主干集 主干模型 我想这样显示公司名称 %script{:id => "user-resource-template", :type => "text/template"} %td= check_bo
%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 %>
%script{:id=>“用户资源模板”,:type=>“文本/模板”}
%td=复选框\标记“选择”,1,false,:class=>“复选框”,“数据id”=>raw(“”)
%运输署
%运输署
%运输署
Backbone.js似乎不支持关系,因为在文档中没有提到它们
尽管如此,还是有一些主干插件增加了对关系的支持,比如or。我还没有测试过它们,但它们看起来相当活跃
更新
要延迟加载集合并防止每个关系一次提取,请参阅中的fetchRelated
方法:
从服务器中获取模型中引用的模型
属性,但尚未找到/创建。这是可以使用的
特别适用于延迟加载场景
默认情况下,将为每个附加模型触发单独的请求
要从服务器获取的。但是,如果您的服务器/API
支持它,您可以通过以下方式在一个请求中获取模型集:
为调用fetchRelated的关系指定collectionType。
collectionType应具有重写的
允许它构造url的url(模型)方法
用于一系列模型。请参见本文顶部的示例
或者举个例子
那么,什么工作不正常呢?好的,“属于”关系不工作,这当然是逻辑,因为模型没有任何关系。因此,我不知道如何打印company.name是的,这看起来不错,但这意味着我必须对集合中的每一行进行请求。这意味着在一个普通的用户索引操作中有20个请求。更新了我的答案,这就是你想要的吗?谢谢。这确实是正确的答案。我会用另一种方式,因为服务器的一些原因,但这是正确的答案。谢谢
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 || '')
%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 %>