Mic*_*per 5 ruby-on-rails backbone.js
我对backbone.js有点新意,我正在努力寻找带有belongs_to关系的集合.
我想获取一个用户列表(用户/ GET),我想显示所有用户,但有一个belongs_to关联.
例如,显示用户的公司名称.有人知道解决方案吗?
我在CouchDB上使用Ruby on Rails 3
def index
User.all
end
Run Code Online (Sandbox Code Playgroud)
class UserCollection extends Backbone.Collection
url: ->
app.routes.users_url
model: User
Run Code Online (Sandbox Code Playgroud)
class User extends Backbone.Model
idAttribute: '_id'
defaults: {
"email": null
"mobile": null
"loc": null
}
url: ->
app.routes.users_url + '/' + (@id || '')
Run Code Online (Sandbox Code Playgroud)
我想像这样展示公司名称......
%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 %>
Run Code Online (Sandbox Code Playgroud)
Backbone.js 似乎不支持关系,因为官方文档中没有提及它们。
不过,一切并没有丢失,有一些 Backbone 插件添加了对关系的支持,例如Backbone-relational或ligament.js。我还没有测试过它们,但骨干关系似乎相当活跃。
更新
要延迟加载集合并防止每个关系一次获取,请参阅Backbone.RelationalModelfetchRelated中的方法:
从服务器获取模型属性中引用但尚未找到/创建的模型。这可以专门用于延迟加载场景。
默认情况下,将为从服务器获取的每个附加模型触发单独的请求。但是,如果您的服务器/API 支持,您可以通过为调用 fetchRelated 的关系指定 collectionType,在一个请求中获取一组模型。collectionType 应该有一个重写的 url(models) 方法,允许它为模型数组构造一个 url。有关示例,请参阅Backbone.Relation 选项或Backbone-tastypie顶部的示例 。