2013-08-01 66 views
3

js我想创建一个带骨干的Rails应用程序。唯一的问题是,我似乎无法弄清楚后端的情况以及前端的情况。我正在使用的方法是将rails本质上用作API。骨干和铁轨。你为什么设置骨干路线?

我正在寻找各种不同的方法,我似乎不太明白为什么你在骨干网路由以及使用普通的路由路由。

我的理论是: 您使用rails来显示最初的html页面,并且您使用backbone路由将javascript文件路由到该html页面,以便您可以在那里执行DOM操作。

这里是我的代码从哪里得到了这个想法的一部分。 (注:这是所有主要采取从瑞安贝茨railcast上Backbone.js的)

骨干路由器

class Poster.Routers.Posts extends Backbone.Router 
    routes: 
     '':'index' 
     'posts/:id': 'show' 

    initialize: -> 
     @collection = new Poster.Collections.Posts() 
     @collection.fetch({reset: true}) 


    index: -> 
     view = new Poster.Views.PostsIndex(collection: @collection) 
     $('#index_container').html(view.render().el) 

的意见/主/ index.html.erb

<div id="index_container"></div> 

那么,这是否骨干路由必不可少的做相当于只加载在index:方法的顶部的views/main/index.html.erb的JavaScript? (我知道其实那些复制的JavaScript线为index.html.erb文件无法正常工作,它只是一个概念上的问题)

回答

5

骨干的设计在单页面应用程序使用,因此它有一个不大使用Rails路由。所有Rails所要做的就是登陆一个.html页面,其他所有内容都是客户关心的问题。 如果你打算使用Rails作为API,那么它的路由根本就不重要。你甚至可以在不同的服务器上保留Rails应用程序和前端。在这种情况下,Rails必须做的是来自客户端的处理请求

例如,您可以构建您的客户端而不与任何后端绑定,它们可以绝对分开。您只需从客户端进行AJAX调用,然后服务器处理它们并使用JSON进行响应。

另外,Backbone不会“将javascript文件路由到该html页面”。它只是根据散列“route:action”执行函数。这些只是普通的JavaScript函数,它们已经可以“看到”在文档中工作的JavaScript。

+0

谢谢!我现在明白了 – user2158382